Iva*_*anH 7 c# vb.net debuggervisualizer visual-studio visual-studio-2012
当我使用 DebuggerVisualizer属性如下
C#
[assembly: DebuggerVisualizer(typeof(DataSetVisualizer), typeof(DataSetVisualizerSource), Target = typeof(DataTable), Description = "My DataTable Visualizer")]
Run Code Online (Sandbox Code Playgroud)
vb.net
<Assembly: DebuggerVisualizer(GetType(DataSetVisualizer), GetType(DataSetVisualizerSource), Target := GetType(DataTable), Description := "My DataTable Visualizer")>
Run Code Online (Sandbox Code Playgroud)
我可以在我的visualiser dll中重用Dataset Visualiser.即使定义了自定义DataTable可视化工具(如何在Visual Studio中指定调试器可视化器的顺序),这也允许内置VS可视化工具作为第一个(默认).
我想为"Text Visualiser"实现相同的行为.
小智 4
不幸的是,我不相信文本可视化工具有托管类,至少对于使用调试器可视化工具记录的 VS API 而言是如此。如果有 Text Visualizer 的特定类,我无法通过反映与调试相关的托管程序集找到它。
创建自定义可视化工具的文档指出,自定义可视化工具将从DialogDebuggerVisualizer继承。但是,如果您反映 Microsoft.VisualStudio.DebuggerVisualizers.dll,您将看到使用此过程实现的 VS 附带的唯一可视化工具是 DataSetVisualizer 类(我使用的是 VS2012,但 VS2008 上的文档表明使用 DialogDebuggerVisualizer 的相同过程) 。因此,不会有可与 DebuggerVisualizerAttribute 一起使用的正确类名。这是DotPeek反射的快照:

其他可视化工具很可能不是托管代码,或者可能是可以跨托管和非托管代码使用的动态构造(最坏的情况是它们是 Visual Studio 早期版本的遗留遗留物)。