Silverlight DebuggingのVisual Studio 2010で辞書Debug Visualizerがあまり役に立たないのですか?
質問
Visual Studio 2010でデバッグしていましたが、これをインストールしたばかりで、クイックウォッチウィンドウに辞書を見ようとしています。キーと値が見えますが、それらに掘削することは、カウントと非公開のメンバーを示しています。 test.take(10)を実行して値を確認できますが、なぜそれをしなければならないのか。比較するためにもうインストールされていませんが、辞書をはるかに簡単にデバッグできるようです。なぜ今このようなのですか?マシンに何らかの形で設定した設定ですか?
テストコード:
Dictionary<string, string> test = new Dictionary<string, string>();
test.Add("a", "b");
編集:コンソールアプリで同じデバッグを試したばかりで、期待どおりに機能します。他のプロジェクトはSilverlight 4アプリケーションですが、なぜ違うのですか?
編集:Microsoft Connectからの返信:「これは私たちの省略でした - Visual Studio 2008 SP1のこの正確な問題を以前に修正していましたが、残念ながらVisual Studio 2010 CodeBaseに移植されていません。良い時間です!)そして、私たちはvs2010 SP1でこの修正を出荷することを検討しています。
Alex Turner Program Manager Visual BasicとC#コンパイラ」では、すぐに修正する必要があります。
編集:SP1でこれを再確認したばかりで、正しく機能しています。
解決
辞書用のデバッガービジュアライザーは、まったく同じ動作を持つまったく同じクラスです。それはまだprivate mscorlib_dictionarydebugviewクラスです。未装備はカウントを示し、拡張された要素の配列を示しています。
コードスニペットは、一般的ではないまったく異なる辞書クラスを使用していることを示唆しています。
他のヒント
デバッガーに辞書の内容をダンプする回避策があります。
あなたのプロジェクトに、LINQ DLLへの参照を追加します(例:System.Core)
次のステートメントをソースファイルに追加します。
System.linqを使用しています。
時計ウィンドウで、入力してください。
test.take(1)
次に、「結果ビュー」グループの行を展開します。これにより、キー、バリューのペアの馴染みのあるリストが得られるはずです。
この回避策は、Bug 557741のConnect.microsoft.comでRickpastoorによって報告されました