如何:编写可视化工具
您可以编写任何托管类对象的自定义可视化工具除外 Object 或 Array。
调试器可视化工具的结构由两部分组成:
调试器端 " 在 Visual Studio 调试器中运行。 调试器端代码创建并显示可视化工具的用户界面。
调试对象端 在处理 Visual Studio 中运行调试 (调试对象)。
要可视化的对象 (如 string 对象,) 存在于调试对象进程。 因此,调试对象端必须发送到调试器端的该数据对象,从而显示它使用用户界面您创建。
调试器端接收 IVisualizerObjectProvider 实现接口的 对象提供程序 要可视化的数据对象。 调试对象端通过 对象源发送数据对象, VisualizerObjectSource从派生。 对象提供程序还可以将数据发送回对象源,可以编写可视化工具编辑器,并显示,数据。 可以重写此对象提供程序与表达式计算器,因此,因此,与对象源
调试对象端和调试器端通过 Stream进行通信。 提供序列化为数据对象的方法。 Stream 和反序列化 Stream 回数据对象。
使用 DebuggerVisualizer 特性 (DebuggerVisualizerAttribute),调试对象端代码指定。
若要在调试器端创建可视化工具用户界面,必须创建从 DialogDebuggerVisualizer 继承的类并重写 DialogDebuggerVisualizer.Show 方法公开接口。
可以使用 IDialogVisualizerService 到显示 windows 窗体、对话框和控件从您的可视化工具。
对泛型类型的支持是有限的。 您可以编写是泛型类型的目标的可视化工具,只有在泛型类型是开放式类型。 ,在使用 DebuggerTypeProxy 属性时,此限制相同。此限制。 有关详细信息,请参见 使用 DebuggerTypeProxy 特性。
自定义可视化工具可能存在安全注意事项。 可视化工具安全注意事项参见。
程序在下,指定哪些的高级视图只需创建可视化工具。 有关更多详细说明,请参见 演练:用 C# 编写可视化工具。
创建调试器端
使用 IVisualizerObjectProvider 方法在调试器端获取可视化的对象。
创建从 DialogDebuggerVisualizer继承的类。
重写 DialogDebuggerVisualizer.Show 方法以显示接口。 为界面的一部分,使用 IDialogVisualizerService 方法以显示 windows 窗体、对话框和控件。
应用 DebuggerVisualizerAttribute,为它指定可视化工具 (DialogDebuggerVisualizer)。
创建调试对象端
应用 DebuggerVisualizerAttribute,为它指定可视化工具 (DialogDebuggerVisualizer) 和对象源 (VisualizerObjectSource)。 如果省略对象源,则使用默认象源
如果您希望可视化工具能够编辑数据对象,以及显示它们,则需要重写从 VisualizerObjectSource的 TransferData 或 CreateReplacementObject 方法。