当我使用DebuggerVisualizer
属性时如下
c#
[assembly: DebuggerVisualizer(typeof(DataSetVisualizer), typeof(DataSetVisualizerSource), Target = typeof(DataTable), Description = "My DataTable Visualizer")]
vb.net
<Assembly: DebuggerVisualizer(GetType(DataSetVisualizer), GetType(DataSetVisualizerSource), Target := GetType(DataTable), Description := "My DataTable Visualizer")>
我可以在我的visualiser dll中重用Dataset Visualiser。即使定义了自定义DataTable
可视化工具(How to specify order of debugger visualizers in Visual Studio),这也允许内置VS可视化工具作为第一个(默认)。
我想为“Text Visualiser”实现相同的行为。
答案 0 :(得分:1)
不幸的是,我不相信Text Visualizer有一个托管类,至少对于使用调试器可视化器的文档化VS API而言。如果Text Visualizer有一个特定的类,我无法通过反映与调试相关的托管程序集找到它。
创建自定义可视化工具的文档指出自定义可视化工具将从DialogDebuggerVisualizer继承。但是,如果您反映Microsoft.VisualStudio.DebuggerVisualizers.dll,您将看到使用此过程实现的VS附带的 only 可视化工具是DataSetVisualizer类(我使用的是VS2012,但他们的文档来自VS2008)表示使用DialogDebuggerVisualizer的相同过程。因此,您不能使用DebuggerVisualizerAttribute使用正确的类名。以下是使用DotPeek的反射快照:
很可能,其他可视化工具不是托管代码,也可能是可以在托管代码和非托管代码中使用的动态构造(最糟糕的情况是,它们是早期版本的Visual Studio中的遗留结构)。