演练:用 Visual Basic 编写可视化工具

本演练演示如何使用 Visual Basic 编写简单的可视化工具。 本演练中创建的可视化工具使用 Windows 窗体消息框显示字符串的内容。 此简单字符串可视化工具是一个基本示例,将演示如何创建更加适合您项目的其他数据类型的可视化工具。

备注

显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。若要更改设置,请转到“工具”菜单,然后选择“导入和导出”。有关更多信息,请参见 Visual Studio 设置

可视化工具代码必须放置在一个将由调试器读取的 DLL 中。 第一步是为此 DLL 创建一个类库项目。

创建和准备类库项目

创建类库项目

  1. 从**“文件”菜单中选择“新建”,然后单击“新建项目”**。

  2. 在**“新建项目”对话框的“项目类型”下,单击“Visual Basic”**。

  3. 在**“模板”框中单击“类库”**。

  4. 在**“名称”**框中,为类库键入一个适当的名称,例如 MyFirstVisualizer。

  5. 单击**“确定”**。

创建类库后,必须添加对 Microsoft.VisualStudio.DebuggerVisualizers.DLL 的引用,以便使用其中定义的类。 不过,首先要为您的项目赋予一个有意义的名称。

重命名 Class1.vb 并添加 Microsoft.VisualStudio.DebuggerVisualizers

  1. 在**“解决方案资源管理器”中,右击“Class1.vb”,然后在快捷菜单上,单击“重命名”**。

  2. 将名称从 Class1.vb 更改为有意义的名称,例如 DebuggerSide.vb。

    备注

    Visual Studio 会自动更改 DebuggerSide.vb 中的类声明,以便与新文件名匹配。

  3. 在**“解决方案资源管理器”中,右击“My First Visualizer”,然后在快捷菜单上,单击“添加引用”**。

  4. 在**“添加引用”对话框中的“.NET”**选项卡上,单击“Microsoft.VisualStudio.DebuggerVisualizers.DLL”。

  5. 单击**“确定”**。

  6. 在 DebuggerSide.vb 中,将以下语句添加到 Imports 语句中:

    Imports Microsoft.VisualStudio.DebuggerVisualizers
    

添加调试器端代码

现在已经准备好创建调试器端代码了。 这是运行在调试器中以显示要可视化的信息的代码。 首先,必须更改 DebuggerSide 对象的声明,以便它从基类 DialogDebuggerVisualizer 继承。

从 DialogDebuggerVisualizer 继承

  1. 在 DebuggerSide.vb 中,转到下面的代码行:

    Public Class DebuggerSide
    
  2. 编辑代码,使它类似于以下内容:

    Public Class DebuggerSide
    Inherits DialogDebuggerVisualizer
    

DialogDebuggerVisualizer 具有一个抽象方法 Show,您必须重写此方法。

重写 DialogDebuggerVisualizer.Show 方法

  • 在 public class DebuggerSide 中添加下面的方法:

    Protected Overrides Sub Show(ByVal windowService As Microsoft.VisualStudio.DebuggerVisualizers.IDialogVisualizerService, ByVal objectProvider As Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider)
    
        End Sub
    

Show 方法包含实际创建可视化工具对话框或其他用户界面的代码,并显示已从调试器传递到可视化工具的信息。 您必须添加创建该对话框并显示该信息的代码。 在本演练中,将使用 Windows 窗体消息框执行此操作。 首先,必须为 System.Windows.Forms 添加一个引用和 Imports 语句。

添加 System.Windows.Forms

  1. 在**“解决方案资源管理器”中,右击“引用”,然后在快捷菜单上,单击“添加引用”**。

  2. 在**“添加引用”对话框中的“.NET”选项卡上,单击“System.Windows.Forms”**。

  3. 单击**“确定”**。

  4. 在 DebuggerSide.cs 中,将下面的语句添加到 Imports 语句中:

    Imports System.Windows.Forms
    

创建您的可视化工具的用户界面

现在,您将添加一些代码以创建和显示可视化工具的用户界面。 由于这是您的第一个可视化工具,因此您将保持用户界面简洁并使用消息框。

在对话框中显示可视化工具输出

  1. 在 Show 方法中,添加以下代码行:

    MessageBox.Show(objectProvider.GetObject().ToString())
    

    此代码示例中不包含错误处理。 但在实际的可视化工具或任何其他类型的应用程序中,应当包含错误处理。

  2. 在**“生成”菜单上,单击“生成 MyFirstVisualizer”**。 该项目应能成功生成。 在继续前更正所有生成错误。

添加必需特性

这是调试器端代码的结尾部分。 但是还有一步操作:添加用于通知调试对象端哪些类集合构成可视化工具的特性。

添加调试对象端代码

  1. 在 DebuggerSide.vb 中的 Imports 语句之后但在 namespace MyFirstVisualizer 之前,添加以下特性代码:

    <Assembly: System.Diagnostics.DebuggerVisualizer(GetType(MyFirstVisualizer.DebuggerSide), GetType(VisualizerObjectSource), Target:=GetType(System.String), Description:="My First Visualizer")>
    
  2. 在**“生成”菜单上,单击“生成 MyFirstVisualizer”**。 该项目应能成功生成。 在继续前更正所有生成错误。

创建测试套

这时,第一个可视化工具就完成了。 如果您已正确地按照每一步操作,您可以生成该可视化工具,并将其安装到 Visual Studio 中。 但在将可视化工具安装到 Visual Studio 中之前,应对其进行测试以确保它能够正常运行。 您现在将创建一个测试套以在没有将可视化工具安装到 Visual Studio 中的情况下运行它。

添加测试方法以显示可视化工具

  1. 将下面的方法添加到类 public DebuggerSide:

    Shared Public Sub TestShowVisualizer(ByVal objectToVisualize As Object)
        Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(DebuggerSide))
    visualizerHost.ShowVisualizer()
    End Sub
    
  2. 在**“生成”菜单上,单击“生成 MyFirstVisualizer”**。 该项目应能成功生成。 在继续前更正所有生成错误。

然后,您必须创建一个可执行项目以调用可视化工具 DLL。 为简单起见,使用一个控制台应用程序项目。

将控制台应用程序项目添加到解决方案中

  1. 在**“文件”菜单中单击“添加”,然后单击“新建项目”**。

  2. 在**“添加新项目”对话框的“模板”框中,单击“控制台应用程序”**。

  3. 在**“名称”**框中,为控制台应用程序键入一个有意义的名称,例如 MyTestConsole。

  4. 单击**“确定”**。

现在,必须添加必要的引用,以便 MyTestConsole 能够调用 MyFirstVisualizer。

添加对 MyTestConsole 的必需引用

  1. 在**“解决方案资源管理器”中右击“MyTestConsole”,然后在快捷菜单上,单击“添加引用”**。

  2. 在**“添加引用”对话框中的“.NET”**选项卡上,单击“Microsoft.VisualStudio.DebuggerVisualizers”。

  3. 单击**“确定”**。

  4. 右击**“MyTestConsole”,再单击“添加引用”**。

  5. 在**“添加引用”对话框中单击“项目”**选项卡,然后选择“MyFirstVisualizer”。

  6. 单击**“确定”**。

完成测试套并测试可视化工具

现在,您将添加代码以完成测试套。

将代码添加到 MyTestConsole

  1. 在**“解决方案资源管理器”中右击“Program.vb”,然后单击快捷菜单上的“重命名”**。

  2. 将名称从 Module1.vb 更改为更合适的名称,例如 TestConsole.vb。

    请注意,Visual Studio 会自动更改 TestConsole.vb 中的类声明,使之与新文件名匹配。

  3. 在 TestConsole. vb 中,添加以下 Imports 语句:

    Imports MyFirstVisualizer
    
  4. 在方法 Main 中,添加以下代码:

    Dim myString As String = "Hello, World"
    DebuggerSide.TestShowVisualizer(myString)
    

现在已准备好测试您的第一个可视化工具了。

测试可视化工具

  1. 在**“解决方案资源管理器”中右击“MyTestConsole”,然后单击快捷菜单中的“设为启动项目”**。

  2. 在**“调试”菜单上,单击“启动”**。

    控制台应用程序启动。 此时将出现可视化工具,其中显示字符串“Hello, World”。

祝贺您! 您刚刚生成了第一个可视化工具并进行了测试。

如果您想在 Visual Studio 中使用可视化工具,而不是只从测试工具中调用它,则需要安装它。 有关更多信息,请参见如何:安装可视化工具

请参见

任务

如何:安装可视化工具

概念

可视化工具体系结构

其他资源

可视化工具