演练:用 C# 编写可视化工具

使用 c#,本演练演示如何编写简单的可视化工具。使用 windows 窗体消息框,可视化工具在本演练演示将创建字符串的内容。此简单字符串可视化工具本身并不是十分有用,但是,它表示基本步骤,必须遵循为其他数据类型创建更有用的可视化工具。

说明说明

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

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

创建类库项目

  1. 文件 菜单中,选择 新建 然后单击 新建项目

  2. 新建项目 对话框中,在 项目类型的下,选择 Visual C#

  3. 模板 框中,选择 类库

  4. 名称 框中,键入适当的名称类库,例如 MyFirstVisualizer。

  5. 单击 确定

在创建了类库后,必须添加对 Microsoft.VisualStudio.DebuggerVisualizers.DLL 的引用,以便可以使用其中定义的类存在。但是,在添加引用前,必须对某些类重命名为,以使其名称有意义。

将 Class1.cs 重命名并添加 Microsoft.VisualStudio.DebuggerVisualizers

  1. 解决方案资源管理器,右击 Class1.cs 并在快捷菜单上选择 重命名

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

    说明说明

    Visual Studio 自动更改 DebuggerSide.cs 中的类声明与新文件名。

  3. 解决方案资源管理器,右击 引用 并在快捷菜单上选择 添加引用

  4. 添加引用 对话框中,在 .NET 选项,请选择 Microsoft.VisualStudio.DebuggerVisualizers.DLL。

  5. 单击 确定

  6. 在 DebuggerSide.cs 中,将以下语句添加到 using 语句:

    using Microsoft.VisualStudio.DebuggerVisualizers;
    

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

从 DialogDebuggerVisualizer 继承

  1. 在 DebuggerSide.cs 中,转到以下代码行:

    public class DebuggerSide
    
  2. 将代码更改为:

    public class DebuggerSide : DialogDebuggerVisualizer
    

DialogDebuggerVisualizer 有一个抽象方法 (Show) 必须重写。

重写 DialogDebuggerVisualizer.Show 方法

  • 在 public class DebuggerSide,添加以下 方法:

    override protected void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
    {
    }
    

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

添加 System.Windows.Forms

  1. 解决方案资源管理器,右击 引用 并在快捷菜单上选择 添加引用

  2. 添加引用 对话框中,在 .NET 选项,选择 System.Windows.Forms.DLL。

  3. 单击 确定

  4. 在 DebuggerSide.cs 中,将以下语句添加到 using 语句:

    using System.Windows.Forms;
    

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

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

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

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

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

  2. 生成 菜单中,选择 生成 MyFirstVisualizer。该项目应成功生成。在继续操作之前更正所有生成错误。

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

添加调试对象端代码

  1. 将以下特性代码添加到 DebuggerSide.cs 中,在 using 语句之后,但在 namespace MyFirstVisualizer之前:

    [assembly:System.Diagnostics.DebuggerVisualizer(
    typeof(MyFirstVisualizer.DebuggerSide),
    typeof(VisualizerObjectSource),
    Target  = typeof(System.String),
    Description  = "My First Visualizer")]
    
  2. 生成 菜单中,选择 生成 MyFirstVisualizer。该项目应成功生成。在继续操作之前更正所有生成错误。

此时,您的第一个可视化工具完成。如果正确地执行中的步骤,可以生成可视化工具和安装到 Visual Studio。,但是之前,在将可视化工具安装到 Visual Studio应进行测试,以确保正确运行。您现在将创建一个测试计算机运行可视化工具,无需安装到 Visual Studio。

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

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

    public static void TestShowVisualizer(object objectToVisualize)
    {
       VisualizerDevelopmentHost visualizerHost = new VisualizerDevelopmentHost(objectToVisualize, typeof(DebuggerSide));
       visualizerHost.ShowVisualizer();
    }
    
  2. 生成 菜单中,选择 生成 MyFirstVisualizer。该项目应成功生成。在继续操作之前更正所有生成错误。

接下来,必须创建一个可执行项目以调用可视化工具 DLL。为简单起见,我们将使用控制台应用程序项目。

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

  1. 文件 菜单中,选择 添加 然后单击 新建项目

  2. 添加新项目 对话框中,在 模板 框中,选择 控制台应用程序

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

  4. 单击 确定

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

若要添加必要的引用对 MyTestConsole

  1. 解决方案资源管理器,右击 MyTestConsole 并在快捷菜单上选择 添加引用

  2. 添加引用 对话框中, .NET 选项卡中,选择 Microsoft.VisualStudio.DebuggerVisualizers.DLL。

  3. 单击 确定

  4. 右击 MyTestConsole 并重新选择 添加引用

  5. 添加引用 对话框中,单击 项目 选项并单击 MyFirstVisualizer。

  6. 单击 确定

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

将代码添加到 MyTestConsole

  1. 解决方案资源管理器,右击 Program.cs 并在快捷菜单上选择 重命名

  2. 编辑从 Program.cs 改为更有意义的名称,例如 TestConsole.cs。

    附注   Visual Studio 自动更改 TestConsole.cs 中的类声明与新文件名。

  3. 在 TestConsole.cs 中,将以下代码添加到 using 语句:

    using MyFirstVisualizer;
    
  4. 在方法 Main,添加以下代码:

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

现在,即可测试第一个可视化工具。

测试可视化工具

  1. 解决方案资源管理器,右击 MyTestConsole 并在快捷菜单上选择 设置为启动项目

  2. 调试 菜单中,选择 启动

    控制台应用程序启动,可视化工具将出现并显示字符串, “hello, world”。

祝贺您!您生成并测试您的第一个可视化工具。

如果在 Visual Studio 若要使用您的可视化工具而不是调用它从测试计算机,则必须安装它。有关更多信息,请参见 如何:安装可视化工具

使用可视化工具项模板

至此,本演练向您展示了如何手动创建可视化工具。这样做,了解的执行。现在您知道简单的可视化工具是如何工作的,有一种简单的方法来创建一:使用可视化工具项模板。

首先,必须创建一个新的类库项目。

创建一个新的类库

  1. 文件 菜单中,选择 添加 然后单击 新建项目

  2. 添加新项目 对话框中,在 项目类型的下,选择 Visual C#

  3. 模板 框中,选择 类库

  4. 名称 框中,键入适当的名称类库,例如 MySecondVisualizer。

  5. 单击 确定

现在,可以向它添加可视化工具项:

添加可视化工具项

  1. 解决方案资源管理器,右击 MySecondVisualizer。

  2. 在快捷菜单上,选择 添加 然后单击 新建项

  3. 添加新项 对话框中,在 模板下, Visual Studio 已安装的模板,选择 调试器可视化工具

  4. 名称 框中,键入适当的名称,例如 SecondVisualizer.cs。

  5. 单击 添加

至此全部操作都已完成。查看文件 SecondVisualizer.cs 并查看模板为您添加的代码。继续对代码进行试验。您已经了解了基础知识,您是在您的途中以创建您的更为复杂有用的可视化工具。

请参见

任务

如何:安装可视化工具

概念

可视化工具体系结构

其他资源

可视化工具