我在Visual Studio 2010中进行调试,我们刚刚安装了它,并试图在快速手表窗口中查看字典。我看到了钥匙和价值,但是在这些表明和非公共成员中进行钻探,非公共成员继续这条路线,我从未在字典中看到这些值。我可以运行test.take(10)并查看值,但是为什么要这样做。我不再安装VS 2008可以进行比较,但是看来我可以更轻松地调试字典。为什么现在这样?这只是我以某种方式设置在机器上的设置吗?

测试代码:

  Dictionary<string, string> test = new Dictionary<string, string>();
    test.Add("a", "b");

编辑:我只是在控制台应用程序中尝试了相同的调试,并且可以按预期工作。另一个项目是Silverlight 4应用程序,为什么它们与众不同?

控制台调试屏幕截图

Silverlight 4调试屏幕截图:

编辑:来自Microsoft Connect的回复:“这是我们的遗漏 - 我们以前已经解决了Visual Studio 2008 SP1的确切问题,但是不幸的是,此修复程序未移植到Visual Studio 2010 Codebase。现在是再次修复的(这是好了!)我们正在考虑在VS2010 SP1中运送此修复程序。

Alex Turner程序管理器Visual Basic和C#编译器“因此应尽快修复。

编辑:我只是在SP1中对此进行了仔细检查,并且正常工作。

有帮助吗?

解决方案

字典的调试可视化器是完全相同的类别的类别。它仍然是私有mscorlib_dictionarydebugview类。不足的它显示了计数,扩展了它显示了元素的数组。

您的代码段表明您使用的是完全不同的字典类,该类别不是通用的。

其他提示

有一个解决方法可以在调试器中丢弃词典的内容。

  1. 向您的项目,添加引用到LINQ DLL(EG System.Core)

  2. 将以下语句添加到您的源文件:

    使用system.linq;

  3. 在手表窗口中,键入:

    test.take(1)

  4. 然后扩展“结果视图”组行。这应该为您提供熟悉的密钥列表,价值对。

此解决方法由Rickpastoor在connect.microsoft.com上报道了错误557741

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top