使用体系结构资源管理器查找代码

若要查找特定代码,请使用 Visual Studio Ultimate 中的“体系结构资源管理器”浏览以下内容:

  • Visual C# .NET、Visual Basic .NET、Visual C++ 或 X++ 项目

  • 跨多个应用共享代码的项目

  • 已编译代码,例如程序集、可执行文件或二进制文件

若要浏览跨多个应用共享的代码或 X++ 代码,请确保你拥有 Visual Studio 2013 Update 2 或更高版本。 如果某个类型具有相同的名称并且由解决方案中的多个应用项目共享,则该类型将在“体系结构资源管理器”中出现多次。

若要在你找到的代码中查看关系,请从“体系结构资源管理器”创建代码图或依赖项关系图。 请参阅在依赖项关系图上映射代码间的依赖关系

  • “体系结构资源管理器”入门

  • 查找 Visual Studio 解决方案中的源代码

  • 查找程序集、可执行文件或二进制文件中的已编译代码

  • 缩小结果的范围

  • 刷新结果

“体系结构资源管理器”入门

打开“体系结构资源管理器”

  • 在**“体系结构”菜单上,指向“窗口”,然后单击“体系结构资源管理器”**。

    如果任何窗口(例如“错误列表”窗口或“输出”窗口)显示在体系结构资源管理器的上方,请移动这些窗口,使它们不会妨碍你调整体系结构资源管理器的大小。

体系结构资源管理器中的顶级域

体系结构资源管理器:域、视图、节点、节点类型和链接类型

体系结构资源管理器将结构表示为节点,并将关系表示为链接。 在你浏览时,体系结构资源管理器将节点显示在连续的列中。 第一列显示你可浏览的域和视图。 在你选择某个域和视图时,体系结构资源管理器将显示该视图中的可用节点。

在选择某一列中的节点时,体系结构资源管理器中的下一列将显示与你当前选定的内容逻辑上相关的节点。 例如,如果选择命名空间,你将在下一列中看到类型。 如果选择类型,你将在下一列中看到成员。 折叠的操作列(显示在节点列的右侧)标识下一列所包含节点的默认类型或关系。 通过展开操作列并选择节点或链接的特定类型,你可以筛选下一列的结果。

提示

将指针移至操作列上时,操作列将突出显示。

查找 Visual Studio 解决方案中的源代码

你可以使用体系结构资源管理器中的**“类视图”“解决方案视图”**浏览源代码,并且可以向下浏览到表达式级别。

  • **“类视图”**显示解决方案的逻辑视图。 例如,你可以按命名空间、类、成员等进行浏览。

    体系结构资源管理器中的类视图

  • **“解决方案视图”**显示解决方案的物理视图。 例如,你可以按项目、项目文件等进行浏览。

    体系结构资源管理器中的解决方案视图

查找解决方案中的代码

  1. 在**“解决方案资源管理器”的第一列中,在“Visual Studio <解决方案名称>”下,单击“类视图”“解决方案视图”**。

    另一列将出现在第一列的右边。 此列显示所选视图中可用的所有节点。 例如,如果选择了**“类视图”**,你将看到以逻辑方式存在于解决方案中的所有命名空间。

  2. 在节点列中,选择一个或多个节点以查看相关节点的下一列。 若要选中当前列中的所有节点,请按 Ctrl+A

  3. 重复步骤 2,直到找到所需节点。

    提示

    若要通过清除列重新开始查询,请在“体系结构资源管理器”工具栏上,单击“清除列”“清除列”按钮

查找程序集、可执行文件或二进制文件中的已编译代码

使用**“体系结构资源管理器”中的“选择文件”**浏览托管程序集,直至“方法到方法”调用级别。

  1. 在**“体系结构”菜单上,指向“窗口”,然后单击“体系结构资源管理器”**。

  2. 在第一列中的**“文件系统”下,单击“选择文件”**。

  3. 在**“打开”对话框中,浏览到程序集或二进制文件,选择这些文件,然后单击“打开”**。

    一个节点列将出现并显示所选的文件。

  4. 在该节点列中,选择一个或多个文件。

    另一个节点列将出现并显示所选文件中的所有节点。

  5. 选择一个或多个节点以查看相关节点的下一列。 若要选中当前列中的所有节点,请按 Ctrl+A

  6. 重复步骤 4 和步骤 5,直到找到所需节点。

缩小结果的范围

可通过以下方式缩小浏览会话结果的范围:

  • 按名称筛选当前列中的结果

  • 按类别或属性筛选当前列中的结果

  • 按类别筛选下一列中的结果

  • 按链接类型筛选下一列中的结果

  • 按容器或属性值对结果进行分组

按名称筛选当前列中的结果

按名称筛选当前列

  1. 在**“体系结构资源管理器”**中的列顶部,单击阴影区域以显示筛选框。

  2. 键入名称,然后按 Enter

    当前列将仅显示匹配节点。 该列的右下角将显示一个水印,表示该列已筛选。

按类别或属性筛选当前列中的结果

按类别或属性筛选当前列

  1. 在**“体系结构资源管理器”**中的列顶部,单击阴影区域以显示筛选框。

  2. 在筛选框的左边,单击**“按类别或属性筛选当前列中的项”**按钮。

  3. 若要仅显示特定类别的项,请在**“类别”**下单击所需的类型。

  4. 若要仅显示具有特定属性的项,请在**“属性”**下单击所需的属性。

  5. 完成上述操作后,单击**“确定”**。

    当前列将仅显示匹配项。 该列的右下角将显示一个水印,表示该列已筛选。

按类别筛选下一列中的结果

  1. 在**“体系结构资源管理器”**中,浏览到位于所需查看节点之前的节点列,然后选择所需的节点。

  2. 在节点列的右侧,单击折叠的操作列将它展开。

    提示

    将指针移至操作列上时,操作列将突出显示。

  3. 在操作列中的**“节点导航”**下,选择你要查看进一步信息的特定类型的节点。 若要查看这些类型的联合,请选择多种类型。

    一个节点列将出现并显示任何匹配节点。

    备注

    浏览 .NET 代码时,你可能会看到下列类型,这些类型仅适用于 C 和 C++ 代码并且在你选择它们时不会显示结果:Unions、Typedefs 和 Members。

按链接类型筛选下一列中的结果

体系结构资源管理器将用于筛选下一组节点的链接类型分为两种类别:入站或出站。 这些类别描述链接相对于当前所选节点的方向。 出站链接从当前所选节点指向下一个相关节点。 入站链接从前一个相关节点指向当前所选节点。 当你选择出站链接类型时,体系结构资源管理器将显示下一级别的相关节点。 当你选择入站链接类型时,体系结构资源管理器将显示上一级别的相关节点。

例如,如果选择类节点,并且选择出站**“包含”链接类型,则体系结构资源管理器将显示该类节点包含的节点。 如果为该类节点选择入站“包含者”**链接类型,你将看到包含该类的节点,例如命名空间、类文件和项目。

  1. 在**“体系结构资源管理器”**中,浏览到位于所需查看节点之前的节点列,然后选择所需的节点。

  2. 在节点列的右侧,单击折叠的操作列将它展开。

    备注

    将指针移到“操作”列上时,该列会突出显示。

  3. 在操作列中,选择下列选项之一:

    • 若要查看下一级别的相关节点,请在**“出站导航”**下选择所需的链接类型。

    • 若要查看上一级别的相关节点,请在**“入站导航”**下选择所需的链接类型。

      备注

      若要查看这些类型的联合,请选择多种类型。

    下一列将出现并显示任何匹配节点。

按容器或属性值对结果进行分组

在体系结构资源管理器中,你可以基于节点的现有包容关系或它们的属性来创建节点组。 如果可进行分组,则在你完成此任务时将出现新组节点的列表。

在体系结构资源管理器中通过这些组创建关系图时,可以使用**“全部显示为组”**命令将链接的节点组织为组。 有关详细信息,请参阅下列主题:

也可以使用组来组织现有关系图上的节点。 有关详细信息,请参阅编辑和自定义依赖项关系图

  1. 在**“体系结构资源管理器”**中,浏览到包含要分组的节点的节点列。 若要选择该列中的所有项,请按 Ctrl+A

  2. 在节点列的右侧,单击折叠的操作列将它展开。

    备注

    将指针移到“操作”列上时,该列会突出显示。

  3. 在操作列中的**“分组”**下:

    单击

    Then

    “按容器分组”以查看任何可用的组

    • 若要查看这些组中的节点,请选择一些组。

      下一列将显示所选组中的节点。

    “按属性分组”以查看任何可用的属性

    1. 选择要用作组的属性。

      下一列将显示按属性值组织的组。

    2. 若要查看具有特定属性值的节点,请选择一些属性值组。

    你看到的组的数量和种类取决于属性值的类型:

    • 布尔值:True 和 False

    • 整数值:将值的范围划分为四等分的四个组。

    • 字符串值:将为每个唯一的字符串值显示一个组,并且节点将基于其特定属性值归属于每个组。

      当所选属性在多个节点之间具有相同的字符串值时,这一点最为有用。 例如,如果选择对于每个节点都具有一个唯一字符串值的属性,则每个节点都将有一个组。

刷新结果

若要查看对代码或解决方案所做的更改,请手动刷新“体系结构资源管理器”。

  1. 在**“体系结构资源管理器”**中,浏览到位于要刷新的列前面的节点列。

  2. 在当前列中,选择与更新的节点相关的节点。

    另一个节点列将出现,以显示刷新的节点列表。

请参见

概念

在依赖项关系图上映射代码间的依赖关系

可视化代码