哪个类用于“Text Visualizer”?

时间:2013-09-20 08:23:56

标签: c# vb.net visual-studio visual-studio-2012 debuggervisualizer

当我使用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”实现相同的行为。

1 个答案:

答案 0 :(得分:1)

不幸的是,我不相信Text Visualizer有一个托管类,至少对于使用调试器可视化器的文档化VS API而言。如果Text Visualizer有一个特定的类,我无法通过反映与调试相关的托管程序集找到它。

创建自定义可视化工具的文档指出自定义可视化工具将从DialogDebuggerVisualizer继承。但是,如果您反映Microsoft.VisualStudio.DebuggerVisualizers.dll,您将看到使用此过程实现的VS附带的 only 可视化工具是DataSetVisualizer类(我使用的是VS2012,但他们的文档来自VS2008)表示使用DialogDebuggerVisualizer的相同过程。因此,您不能使用DebuggerVisualizerAttribute使用正确的类名。以下是使用DotPeek的反射快照:

DotPeek reflection of Microsoft.VisualStudio.DebuggerVisualizers.dll

很可能,其他可视化工具不是托管代码,也可能是可以在托管代码和非托管代码中使用的动态构造(最糟糕的情况是,它们是早期版本的Visual Studio中的遗留结构)。