0

我需要迅速适应用 VB 编写的现有系统。对于一些较大的 VB 表单类(2000 多行)和其他类,我想获得它们的概述,其中包含区域和其中的声明(方法、函数、属性和类级变量),我可以打印/保存以供参考。

目前我可以通过删除方法体和删除注释来手动实现这一点。我还可以使用一些高级正则表达式(正则表达式)搜索来标记所需的行,然后过滤掉其余的行。可以使用Reflection获得声明列表,但我认为它总是没有#Region信息。

是否有任何 VisualStudio 功能或外部工具可以为我创建这样的“类图”?

换句话说,我想生成类似于 C/C++ 头文件但用于 VB 并且还包括#Region信息的文件。

预期输出示例:

Public Class frmXY_Sample1

#Region "Internal Variables" 
#Region "Form Common"
    Private _Connection As SqlClient.SqlConnection
    Private _DataFormType As XYZ.xyzDataFormType
    Private AllowEvents As Boolean
#End Region
#Region "Instance Data"
    Private _Instance As thisEnt
#End Region
#End Region

#Region "Form Events"
    Private Sub frmXY_SomeForm1_Load(sender As Object _
#End Region
#Region "Save..."
    Private Sub ID_Save_Click(sender As System.Object, e As System.EventArgs) Handles ID_Save.Click
#End Region

#Region "FormTabs" 
#Region "Tab 'SampleTab1'"
    Private Sub TS_TAB1_AddNew_Click(sender As System.Object, e As System.EventArgs) _
    Private Sub TS_TAB1_Detail_Click(sender As System.Object, e As System.EventArgs) _
#End Region
#Region "Tab 'SampleTab2'"
    Private Sub TS_TAB2_Detail_Click(sender As System.Object, e As System.EventArgs) _
    Private Sub TS_TAB2_Refresh_Click(sender As System.Object, e As System.EventArgs) _
    Private Sub TAB2_Grid_CellPainting(sender As System.Object _
#End Region

谢谢你。

4

1 回答 1

1

在 Visual Studio 2012 Professional 中,没有什么完全符合您的要求。如果您在 C# 项目中工作,您可以使用“转到定义”功能自动获得类似于您正在寻找的代码映射。

这是一段 C# 代码。

在此处输入图像描述

在光标位于 StreamReader 类上时按 F12 会打开以下元数据编辑器。

在此处输入图像描述

使用 Go To Definition 解码 VB 类

VB 编辑器也有一个转到定义,但它会将您带到对象浏览器而不是元数据窗口。但是有一种方法可以获取元数据。

创建一个单独的 C# 项目。在我的示例中,我制作了一个简单的控制台应用程序。添加对您的 VB 项目的引用 在 C# 项目中编写一些代码以实例化 VB 库中的类型并使用 C# F12 获取元数据

这是一个简单的VB类。

在此处输入图像描述

这是引用打印机类的 C# 代码。 在此处输入图像描述

这是来自 C# 项目中的 VB 类的元数据。

在此处输入图像描述

我知道这不像你的例子那么完整,但这是一个开始。

其他解决方案

您可以从Tools\Extensions and Updates菜单中安装一个 Code Map 扩展。但是,我认为它不支持您想要的打印选项。

最后,您可以创建自己的 Visual Studio 扩展。不过,这不是一项微不足道的任务。如果您想了解更多信息,请下载Visual Studio SDK 。

于 2013-06-06T04:50:28.153 回答