演练:用 Visual Basic 编写可视化工具
本演练演示如何使用 Visual Basic 编写简单的可视化工具。 本演练中创建的可视化工具使用 Windows 窗体消息框显示字符串的内容。 此简单字符串可视化工具是一个基本示例,将演示如何创建更加适合您项目的其他数据类型的可视化工具。
备注
显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。若要更改设置,请转到“工具”菜单,然后选择“导入和导出”。有关更多信息,请参见 Visual Studio 设置。
可视化工具代码必须放置在一个将由调试器读取的 DLL 中。 第一步是为此 DLL 创建一个类库项目。
创建和准备类库项目
创建类库项目
从**“文件”菜单中选择“新建”,然后单击“新建项目”**。
在**“新建项目”对话框的“项目类型”下,单击“Visual Basic”**。
在**“模板”框中单击“类库”**。
在**“名称”**框中,为类库键入一个适当的名称,例如 MyFirstVisualizer。
单击**“确定”**。
创建类库后,必须添加对 Microsoft.VisualStudio.DebuggerVisualizers.DLL 的引用,以便使用其中定义的类。 不过,首先要为您的项目赋予一个有意义的名称。
重命名 Class1.vb 并添加 Microsoft.VisualStudio.DebuggerVisualizers
在**“解决方案资源管理器”中,右击“Class1.vb”,然后在快捷菜单上,单击“重命名”**。
将名称从 Class1.vb 更改为有意义的名称,例如 DebuggerSide.vb。
备注
Visual Studio 会自动更改 DebuggerSide.vb 中的类声明,以便与新文件名匹配。
在**“解决方案资源管理器”中,右击“My First Visualizer”,然后在快捷菜单上,单击“添加引用”**。
在**“添加引用”对话框中的“.NET”**选项卡上,单击“Microsoft.VisualStudio.DebuggerVisualizers.DLL”。
单击**“确定”**。
在 DebuggerSide.vb 中,将以下语句添加到 Imports 语句中:
Imports Microsoft.VisualStudio.DebuggerVisualizers
添加调试器端代码
现在已经准备好创建调试器端代码了。 这是运行在调试器中以显示要可视化的信息的代码。 首先,必须更改 DebuggerSide 对象的声明,以便它从基类 DialogDebuggerVisualizer 继承。
从 DialogDebuggerVisualizer 继承
在 DebuggerSide.vb 中,转到下面的代码行:
Public Class DebuggerSide
编辑代码,使它类似于以下内容:
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
在**“解决方案资源管理器”中,右击“引用”,然后在快捷菜单上,单击“添加引用”**。
在**“添加引用”对话框中的“.NET”选项卡上,单击“System.Windows.Forms”**。
单击**“确定”**。
在 DebuggerSide.cs 中,将下面的语句添加到 Imports 语句中:
Imports System.Windows.Forms
创建您的可视化工具的用户界面
现在,您将添加一些代码以创建和显示可视化工具的用户界面。 由于这是您的第一个可视化工具,因此您将保持用户界面简洁并使用消息框。
在对话框中显示可视化工具输出
在 Show 方法中,添加以下代码行:
MessageBox.Show(objectProvider.GetObject().ToString())
此代码示例中不包含错误处理。 但在实际的可视化工具或任何其他类型的应用程序中,应当包含错误处理。
在**“生成”菜单上,单击“生成 MyFirstVisualizer”**。 该项目应能成功生成。 在继续前更正所有生成错误。
添加必需特性
这是调试器端代码的结尾部分。 但是还有一步操作:添加用于通知调试对象端哪些类集合构成可视化工具的特性。
添加调试对象端代码
在 DebuggerSide.vb 中的 Imports 语句之后但在 namespace MyFirstVisualizer 之前,添加以下特性代码:
<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(MyFirstVisualizer.DebuggerSide), GetType(VisualizerObjectSource), Target:=GetType(System.String), Description:="My First Visualizer")>
在**“生成”菜单上,单击“生成 MyFirstVisualizer”**。 该项目应能成功生成。 在继续前更正所有生成错误。
创建测试套
这时,第一个可视化工具就完成了。 如果您已正确地按照每一步操作,您可以生成该可视化工具,并将其安装到 Visual Studio 中。 但在将可视化工具安装到 Visual Studio 中之前,应对其进行测试以确保它能够正常运行。 您现在将创建一个测试套以在没有将可视化工具安装到 Visual Studio 中的情况下运行它。
添加测试方法以显示可视化工具
将下面的方法添加到类 public DebuggerSide:
Shared Public Sub TestShowVisualizer(ByVal objectToVisualize As Object) Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(DebuggerSide)) visualizerHost.ShowVisualizer() End Sub
在**“生成”菜单上,单击“生成 MyFirstVisualizer”**。 该项目应能成功生成。 在继续前更正所有生成错误。
然后,您必须创建一个可执行项目以调用可视化工具 DLL。 为简单起见,使用一个控制台应用程序项目。
将控制台应用程序项目添加到解决方案中
在**“文件”菜单中单击“添加”,然后单击“新建项目”**。
在**“添加新项目”对话框的“模板”框中,单击“控制台应用程序”**。
在**“名称”**框中,为控制台应用程序键入一个有意义的名称,例如 MyTestConsole。
单击**“确定”**。
现在,必须添加必要的引用,以便 MyTestConsole 能够调用 MyFirstVisualizer。
添加对 MyTestConsole 的必需引用
在**“解决方案资源管理器”中右击“MyTestConsole”,然后在快捷菜单上,单击“添加引用”**。
在**“添加引用”对话框中的“.NET”**选项卡上,单击“Microsoft.VisualStudio.DebuggerVisualizers”。
单击**“确定”**。
右击**“MyTestConsole”,再单击“添加引用”**。
在**“添加引用”对话框中单击“项目”**选项卡,然后选择“MyFirstVisualizer”。
单击**“确定”**。
完成测试套并测试可视化工具
现在,您将添加代码以完成测试套。
将代码添加到 MyTestConsole
在**“解决方案资源管理器”中右击“Program.vb”,然后单击快捷菜单上的“重命名”**。
将名称从 Module1.vb 更改为更合适的名称,例如 TestConsole.vb。
请注意,Visual Studio 会自动更改 TestConsole.vb 中的类声明,使之与新文件名匹配。
在 TestConsole. vb 中,添加以下 Imports 语句:
Imports MyFirstVisualizer
在方法 Main 中,添加以下代码:
Dim myString As String = "Hello, World" DebuggerSide.TestShowVisualizer(myString)
现在已准备好测试您的第一个可视化工具了。
测试可视化工具
在**“解决方案资源管理器”中右击“MyTestConsole”,然后单击快捷菜单中的“设为启动项目”**。
在**“调试”菜单上,单击“启动”**。
控制台应用程序启动。 此时将出现可视化工具,其中显示字符串“Hello, World”。
祝贺您! 您刚刚生成了第一个可视化工具并进行了测试。
如果您想在 Visual Studio 中使用可视化工具,而不是只从测试工具中调用它,则需要安装它。 有关更多信息,请参见如何:安装可视化工具。