如何:使用体系结构资源管理器查找代码
在 Visual Studio 旗舰版中,您可以使用体系结构资源管理器来选择要进行可视化的代码的垂直切面或“切片”。 可以在 Visual Studio 解决方案或已编译代码中浏览源代码。 可以通过安装其他提供程序,使用体系结构资源管理器浏览其他域。 找到要进行可视化的代码后,您可以生成关系图来浏览该代码中的关系。 有关更多信息,请参见如何:生成 .NET 代码的依赖项关系图。
提示
在 Visual Studio 2010 旗舰版中,体系结构资源管理器仅支持 Visual C# .NET 和 Visual Basic .NET。若要浏览 C 或 C++ 代码,请下载并安装 可视化和建模功能包。 体系结构资源管理器中的以下类型仅适用于 C 和 C++ 代码:Unions、Typedefs 和 Members,当您选中它们时将不会显示结果。 有关更多信息,请参见 Microsoft Visual Studio 2010 可视化和建模功能包。
主题内容
关于体系结构资源管理器
查找 Visual Studio 解决方案中的源代码。
查找托管程序集或可执行文件的中的已编译代码。
缩小浏览结果的范围。
刷新浏览结果。
可以将浏览会话另存为查询(.dgql 文件),以便稍后能够重用它:
将浏览会话另存为查询。
查找保存的查询。
关于体系结构资源管理器
打开体系结构资源管理器
在**“体系结构”菜单上,指向“窗口”,然后单击“体系结构资源管理器”**。
若要调整体系结构资源管理器的大小,请将窗口的顶部拖到所需的高度。 若要移动体系结构资源管理器,请将其标题栏或选项卡拖到所需的位置。
提示
如果任何窗口(例如“错误列表”窗口或“输出”窗口)显示在体系结构资源管理器的上方,请移动这些窗口,使它们不会妨碍您调整体系结构资源管理器的大小。
体系结构资源管理器:域、视图、节点、节点类型和链接类型
体系结构资源管理器将结构表示为节点,并将关系表示为链接。 在您浏览时,体系结构资源管理器将节点显示在连续的列中。 第一列显示您可浏览的域和视图。 在您选择某个域和视图时,体系结构资源管理器将显示该视图中的可用节点。
当在选择某一列中的节点时,体系结构资源管理器中的下一列将显示与所选节点逻辑相关的节点。 例如,如果选择命名空间,您将在下一列中看到类型。 如果选择类型,您将在下一列中看到成员。 折叠的操作列(显示在节点列的右侧)标识下一列所包含节点的默认类型或关系。 通过展开操作列并选择节点或链接的特定类型,您可以筛选下一列的结果。
提示
将指针移到“操作”列上时,该列会突出显示。
查找 Visual Studio 解决方案中的源代码
若要使用此版本附带的预定义查询,请参见查找保存的查询。否则,可以使用体系结构资源管理器中的**“解决方案视图”或“类视图”**浏览源代码到表达式树级别:
**“类视图”**显示 Visual Studio 解决方案的逻辑视图。 例如,您可以按命名空间、类、成员等进行浏览。
体系结构资源管理器中的类视图
**“解决方案视图”**显示 Visual Studio 解决方案的物理视图。 例如,您可以按项目、项目文件等进行浏览。
体系结构资源管理器中的解决方案视图 查找保存的查询
查找解决方案中的代码
在**“解决方案资源管理器”的第一列中,在“Visual Studio <解决方案名称>”下,单击“类视图”或“解决方案视图”**。
一个节点列将出现在第一列的右边。 此列显示所选视图中可用的所有节点。 例如,如果选择了**“类视图”**,您将看到以逻辑方式存在于解决方案中的所有命名空间。
在节点列中,选择一个或多个节点以查看相关节点的下一列。 若要选中当前列中的所有节点,请按 Ctrl+A。
重复步骤 2,直到找到所需节点。
提示
若要通过清除列重新开始查询,请在“体系结构资源管理器”标题栏下方单击“清除列”。
查找托管程序集或可执行文件中的已编译代码
使用体系结构资源管理器中的**“选择文件”**浏览托管程序集,直至“方法到方法”调用级别。
查找已编译代码
在**“体系结构”菜单上,指向“窗口”,然后单击“体系结构资源管理器”**。
在第一列中的**“文件系统”下,单击“选择文件”**。
在**“打开”对话框中,浏览到托管程序集 (.dll) 或可执行 (.exe) 文件,选择这些文件,然后单击“打开”**。
一个节点列将出现并显示所选的文件。
在该节点列中,选择一个或多个文件。
另一个节点列将出现并显示所选文件中的所有节点。
选择一个或多个节点以查看相关节点的下一列。 若要选中当前列中的所有节点,请按 Ctrl+A。
重复步骤 4,直到找到所需节点。
缩小浏览结果的范围
可通过以下方式缩小浏览会话结果的范围:
按名称筛选当前列中的节点。
按节点类型或属性筛选当前列中的节点。
按节点类型筛选下一列中的节点。
按链接类型筛选下一列中的节点。
按容器或属性值对节点进行分组
按名称筛选当前列中的节点
按名称筛选当前列
按名称筛选当前列中的节点
在**“体系结构资源管理器”**中的节点列顶部,单击阴影区域以显示筛选框。
键入名称,然后按 Enter。
当前列将仅显示匹配节点。 该列的右下角将显示一个水印,表示该列已筛选。
按节点类型或属性筛选当前列中的节点
按类型或属性筛选当前列
按类型或属性筛选当前列中的节点
在**“体系结构资源管理器”**中的节点列顶部,单击阴影区域以显示筛选框。
在筛选框的左边,单击**“按类别或属性筛选当前列中的项”**按钮。
若要仅显示特定类型的节点,请在**“类别”**下单击所需的类型。
若要仅显示具有特定属性的节点,请在**“属性”**下单击所需的属性。
完成上述操作后,单击**“确定”**。
当前列将仅显示匹配节点。 该列的右下角将显示一个水印,表示该列已筛选。
按节点类型筛选下一列中的节点
按节点类型筛选下一列中的节点
在**“体系结构资源管理器”**中,浏览到位于所需查看节点之前的节点列,然后选择所需的节点。
在节点列的右侧,单击折叠的操作列将它展开。
提示
将指针移到“操作”列上时,该列会突出显示。
在操作列中的**“节点导航”**下,选择您要查看进一步信息的特定类型的节点。
提示
若要查看这些类型的联合,请选择多种类型。
一个节点列将出现并显示任何匹配节点。
按链接类型筛选下一列中的节点
体系结构资源管理器将用于筛选下一组节点的链接类型分为两种类别:入站或出站。 这些类别描述链接相对于当前所选节点的方向。 出站链接从当前所选节点指向下一个相关节点。 入站链接从前一个相关节点指向当前所选节点。 当您选择出站链接类型时,体系结构资源管理器将显示下一级别的相关节点。 当您选择入站链接类型时,体系结构资源管理器将显示上一级别的相关节点。
例如,如果选择类节点,并且选择出站**“包含”链接类型,则体系结构资源管理器将显示该类节点包含的节点。 如果为该类节点选择入站“包含者”**链接类型,您将看到包含该类的节点,例如命名空间、类文件和项目。
按链接类型筛选下一列中的节点
在**“体系结构资源管理器”**中,浏览到位于所需查看节点之前的节点列,然后选择所需的节点。
在节点列的右侧,单击折叠的操作列将它展开。
提示
将指针移到“操作”列上时,该列会突出显示。
在操作列中,选择下列选项之一:
若要查看下一级别的相关节点,请在**“出站导航”**下选择所需的链接类型。
若要查看上一级别的相关节点,请在**“入站导航”**下选择所需的链接类型。
提示
若要查看这些类型的联合,请选择多种类型。
下一列将出现并显示任何匹配节点。
按容器或属性值对节点进行分组
在体系结构资源管理器中,您可以基于节点的现有包容关系或它们的属性来创建节点组。 如果可进行分组,则在您完成此任务时将出现新组节点的列表。
在体系结构资源管理器中通过这些组创建关系图时,可以使用**“全部显示为组”**命令将链接的节点组织为组。 有关更多信息,请参见下列主题:
也可以使用组来组织现有关系图上的节点。 有关更多信息,请参见如何:编辑和自定义关系图文档。
按容器或属性值对节点进行分组
在**“体系结构资源管理器”**中,浏览到包含要分组的节点的节点列。 若要选择该列中的所有项,请按 Ctrl+A。
在节点列的右侧,单击折叠的操作列将它展开。
提示
将指针移到“操作”列上时,该列会突出显示。
在操作列中的**“分组”**下:
单击
Then
“按容器分组”以查看任何可用的组
若要查看这些组中的节点,请选择一些组。
下一列将显示所选组中的节点。
“按属性分组”以查看任何可用的属性
选择要用作组的属性。
下一列将显示按属性值组织的组。
若要查看具有特定属性值的节点,请选择一些属性值组。
您看到的组的数量和种类取决于属性值的类型:
布尔值:True 和 False
整数值:将值的范围划分为四等分的四个组。
字符串值:将为每个唯一的字符串值显示一个组,并且节点将基于其特定属性值归属于每个组。
当所选属性在多个节点之间具有相同的字符串值时,这一点最为有用。 例如,如果选择对于每个节点都具有一个唯一字符串值的属性,则每个节点都将有一个组。
刷新浏览结果
必须手动刷新体系结构资源管理器以显示对代码或解决方案所做的任何更改。
刷新体系结构资源管理器
在**“体系结构资源管理器”**中,浏览到位于要刷新的列前面的节点列。
在当前列中,选择与更新的节点相关的节点。
另一个节点列将出现,以显示刷新的节点列表。
将浏览会话另存为查询
可以在体系结构资源管理器中将浏览会话另存为查询或定向关系图查询语言 (.dgql) 文件。 可以将查询保存到磁盘上以供稍后使用,也可以使用 GraphCmd.exe 工具以批处理模式生成关系图。 有关如何以批处理模式或 DGQL 形式生成关系图文档的更多信息,请参见如何:生成 .NET 代码的依赖项关系图。
保存浏览会话
在**“体系结构资源管理器”标题栏下,单击“保存查询”**。
在**“另存为”**对话框中,为查询命名,并将其以 .dgql 文件的形式保存至位于以下位置的本地 Queries 文件夹:
…\My Documents\Visual Studio 2010\ArchitectureExplorer\Queries
提示
若要在体系结构资源管理器中查看查询,您必须将 .dgql 文件保存到 Queries 文件夹,或将其添加到解决方案中。 有关更多信息,请参见查找保存的查询。
查找保存的查询
当您将查询 (.dgql) 文件添加到 Visual Studio 解决方案或将它们保存在本地 Queries 文件夹 (…\My Documents\Visual Studio 2010\ArchitectureExplorer\Queries) 中时,您可以使用体系结构资源管理器来查找这些文件。此文件夹还包含常用的预定义查询。
有关如何在体系结构资源管理器中将浏览会话另存为查询的更多信息,请参见保存浏览会话。
解决方案中的查询
在解决方案中查找查询
在**“视图”菜单上,单击“体系结构资源管理器”**。
在第一列中的**“已保存的 DGQL 查询”下,单击“在我的解决方案中”**以查看一列查询 (.dgql) 文件。
在该查询文件列中,单击一个查询文件。
另一个列将出现并显示所选查询中的节点。
选择一个或多个节点以查看相关节点的下一列。 若要选中当前列中的所有节点,请按 Ctrl+A。
重复步骤 4,直到找到所需节点。
在本地 Queries 文件夹中查找查询
在**“视图”菜单上,单击“体系结构资源管理器”**。
在第一列中的**“已保存的 DGQL 查询”下,单击“在文件夹中”**以查看查询 (.dgql) 文件的列表。
下表列出了可用于在解决方案中浏览项的预定义查询:
查询文件名
显示
All Assembly References.dgql
解决方案引用的所有程序集。
从查询结果中,您可以生成显示这些程序集之间的依赖关系的关系图。 有关更多信息,请参见如何:生成 .NET 代码的依赖项关系图。
All Output Assemblies.dgql
解决方案中没有依赖项链接的所有输出程序集的简单列表。
从查询结果中,您可以为所选程序集生成一个依赖项关系图:
在当前列中,选择要浏览的程序集。
在当前列的右侧,单击折叠的操作列将其展开。
注意将指针移到“操作”列上时,该列会突出显示。在“操作”列的“命令”下,单击“标准关系图”。
All Project References.dgql
解决方案中项目之间的所有引用。
从查询结果中,您可以生成显示这些项目之间的引用的关系图。 有关更多信息,请参见如何:生成 .NET 代码的依赖项关系图。
All Projects.dgql
解决方案中的所有项目的简单列表。
如果您的解决方案包括解决方案文件夹,则此列表与在体系结构资源管理器中单击“解决方案视图”时显示的列表不同。
Constructors.dgql
所有结构函数方法的简单列表
Inheritance Graph.dgql
解决方案中具有以下关系的所有类型:
继承自
Implements
从查询结果中,您可以生成显示这些类型之间的继承关系的关系图。 有关更多信息,请参见如何:生成 .NET 代码的依赖项关系图。
Public Classes.dgql
解决方案中所有公共类的简单列表
Virtual Members.dgql
解决方案中的所有虚拟成员的简单列表。
在该查询文件列中,单击一个查询文件。
一个节点列将出现并显示所选查询中的节点。
在节点列中,选择一个或多个节点以查看相关节点的列。 若要选中当前列中的所有节点,请按 Ctrl+A。
重复步骤 4,直到找到所需节点。