澄清一下,我不知道为什么派生和指定不同的属性会禁用可视化器。
我已经尝试过类似的东西,没有什么能阻止你同时拥有DebuggerDisplay
并DebuggerVisualizer
应用于一个类型。下图显示了两者,左圈是调试器可视化器,右圈是调试器显示:
但是,您可能会在尝试在课堂上使用该DataSetVisualizer
类型时遇到问题。这花了很多时间,但我最终为我的班级定义了以下定义:
[Serializable]
[DebuggerVisualizer(typeof(EnhancedDataSetVisualizer.DataSetVisualizer),
typeof(EnhancedDataSetVisualizer.DataSetVisualizerSource))]
[DebuggerDisplay("{Name}")]
public sealed class SpecFlowTableWrapper : DataSet
{
// Body omitted, not important.
}
我经常不得不更改我在DebuggerVisualizer
. 事实证明,对我来说缺少的部分是指定VisualizerObjectSource
.
然后,调试器显示我的数据集名称,当我单击放大镜时,它会加载DataSetVisualizer
.
所有这一切的重要部分是两个参考:
- Microsoft.VisualStudio.Debugger.DataSetVisualizer
这包含DataSetVisualizer
和DataSetVisualizerSource
类型。
- Microsoft.VisualStudio.DebuggerVisualizers
这是另一个引用的依赖项。
第二项通常在 Visual Studio 的“添加引用...”对话框中可用,但第一项位于 VS 安装目录中。
对我来说(VS 版本可能会有所不同):
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\Debugger\Visualizers\
称为:
Microsoft.VisualStudio.Debugger.DataSetVisualizer.dll
确保“复制本地”对于第一个引用也是正确的(无论如何默认情况下它应该是正确的)。请注意,对于调试,此引用现在是一个依赖项,因此您需要确保它位于您正在调试的任何项目的工作目录中,否则您会收到 VS 调试器错误。
重新构建,启动调试器,享受。抱歉晚了2年。