2012-02-29 5 views
8

アカウントusingsに取っていません。Visual Studioのウォッチウィンドウは、私はビューモデルに次のコードをしている

私は(、コードを選択し、右クリックし、「ウォッチを追加」を選択することにより)ウォッチウィンドウでMath.Sin(Theta)を表示した場合、私は次のエラーを取得する:

The name 'Math' does not exist in the current context

私が知りたいのは何です:

  1. これはVisual Studio 2010のデフォルト動作ですか?私はこれが問題ではなかったことを誓うことができましたが、それはいつもそのように働いていて、何とか気付かなかったかもしれません。
  2. このエラーが発生するのは正常ではない場合、問題の原因が考えられますか? Visual Studioには100万の設定があり、どこから始めたらいいのかわかりません。私はこの質問に注意する必要があり

thisに漠然と似ていますが、私は私のローカル変数マウスオーバーすべての問題を持っていないよ、と私はPostSharpを使用していませんよ。

編集

私はデフォルトにバックアップし、私はまだ同じエラーを取得していますすべての私のVisual Studioの設定をリセットしてみました。 Visual Studioでシンプルなテストを試したい人は、Math.Sin(1)の時計を追加するとエラーが発生するかどうかを知りたいだけです。ここで編集2

はカップルの画面は、私が経験してるものを表示するためにキャプチャします:

​​

Showing error for Watch

編集3

インターestingly、インテリセンスは私がウォッチウィンドウにMath.を入力すると、私は式を完成すれば、私はまだエラーが出る作品:

Showing intellisense working

編集4

BACONの質問に対処するために:

  1. 私はQuickWatchとImmediateで同じ動作をします。
  2. すべてのウィンドウを閉じて再度開いても問題は解決しません。
  3. 私はVisual Studio 2010 Professional(バージョン10.0.40219.1 SP1Rel)を使用しています
  4. .NET 4.0クライアントプロファイルと.NET 4.0を対象としました。違いはありません。私は、.NET 4をターゲットとしたコンソールアプリケーション(WPFアプリケーションではなく)を作成しました。0クライアントプロファイルを作成し、最後にエラーは発生しませんでした。したがって、WPFは問題(または一部のサードパーティ製ライブラリのWPF)になる可能性があります。 (その次にチェックします。)
+0

'System.Math.Sin(1)'にウォッチを追加するとどうなりますか? – BACON

+0

@BACON、うまく動作します。 (深い名前空間では苦痛になります) – devuxer

+2

クイックウォッチとイミディエイトウィンドウは同じ動作をしますか?すべてのウォッチウィンドウを完全に閉じてからデバッグメニューから再度開くと、何かに影響しますか? Visual Studio 2010のどのエディションを使用していますか? Service Pack 1がインストールされていますか?これはアプリケーションがターゲットとしている.NETのバージョンに関係なく発生しますか? – BACON

答えて

6

それは、犯人は、サードパーティのライブラリであることが表示されますIL製織を実行する(Fody.PropertyChanged)。

このライブラリを持たない新しいWPFプロジェクトを作成した場合、ウォッチウィンドウでMath.Sin()を使用できます。 PropertyChangedをインストールすると、「このコンテキストでは利用できません」というエラーが表示されます。

@BACONのおかげで、これを理解するための正しい道を導いてくれました。ここで

は私がのPropertyChangedサイトに掲載号へのリンクです:

http://code.google.com/p/propertychanged/issues/detail?id=6&thanks=6&ts=1330494634

編集

、その後、それは、これはおそらくモノセシルのバグです判明しますPropertyChangedは次を使用します。

https://github.com/jbevain/cecil/issues/90

1

私は

数学に時計を置くしようと

enter image description here

は私の値を見ることができます。..コンストラクタで、リッテテストアプリでこれをやりましたEおよびPI。 あなたは罪の上に人を置くことはできません。 valに入れても問題ありません。

あなたが間違った名前をクリックしない限り、私はそれはまったく正常ではないと思います。つまり、私は全体の事を強調したのはここ変数が、「罪」の部分...

ではありません...

enter image description here

+0

ありがとうございます。しかし、あなたが 'Math.Sin(val)'のための監視をすればどうなるか知る必要があります。 'val 'だけのための時計は私の問題ではありません。 – devuxer

+0

ええと...よく、私は全体のことを "Math.Sin(val)"と強調して、値を0.84147と表示しました.... ご質問をよく読んでいただきありがとうございます。 – pennyrave

+0

ちょうど私の質問に編集を追加しました、うまくいけば私は何を求めているかをより明確にします。 – devuxer

関連する問題