如何:使用依赖项关系图浏览代码
在 Visual Studio 旗舰版中,使用依赖项关系图可帮助您了解有关现有代码中的组织和关系的更多信息。 这些关系图将结构表示为节点,并将关系表示为链接(显示为节点之间的箭头)。 若要生成关系图,请参见如何:生成 .NET 代码的依赖项关系图。
下面的示例演示关系图如何将结构和关系表示为节点和链接:
关系图上的节点和链接
下面的示例演示关系图如何将结构和包容关系显示为组:
关系图上的分组节点
警告
关系图只显示成功生成的代码的依赖关系。 如果组件出现生成错误,则这些组件及其内容将不会出现。 因此,在基于关系图做出体系结构决策时,请确保组件实际生成并且有依赖项。
主题内容
浏览关系图上的依赖关系
查找复杂区域
浏览关系图上的依赖关系
关系图上的依赖关系由以下各种链接表示:
单独的链接表示两个节点之间的单一依赖关系。
聚合链接表示在两个组之间按同一方向行进的所有依赖关系。
跨组链接只是跨不同组的两个节点之间的链接。
提示
默认情况下,关系图只为所选的节点显示跨组链接。 若要始终显示这些链接,请在关系图工具栏上,单击“更改跨组链接在关系图上的呈现方式”按钮,然后单击“显示所有跨组链接”。 如果图形工具栏不可见,请在“视图”上,指向“工具栏”,然后单击“定向关系图”。
使用以下任务来浏览感兴趣的依赖关系:
若要 |
请执行这些步骤 |
---|---|
查看链接表示的依赖关系的列表 |
|
按名称查找节点 用于在多个级别的分组节点中进行搜索。 |
|
查找链接的源或目标 如果有太多链接而无法轻松地看到特定链接的源或目标,请使用此方法。 |
|
检查跨不同组中的节点的依赖关系 |
|
检查聚合链接后面的依赖关系 ![]()
仅在链接的每一端都连接到程序集时,此操作才适用。如果没有程序集信息,则无法创建关系图。
|
|
查找复杂区域
使用依赖项关系图来标识您或许能够改进的区域。 格式正确的依赖项关系图显示的依赖关系数量将很少。 例如,您可以:
查找具有循环或循环依赖关系的代码。
检查这些区域以确定您是否能够简化它们。 考虑您是否能够中断这些循环。
查找具有太多依赖关系的代码。
检查这些区域以确定它们是否在执行太多的功能,或确定更改这些区域将造成的影响。 若要使代码更易于维护、更改、测试和重用,请考虑是否能重构这些区域以使它们定义更清晰,或者是否能合并执行类似功能的代码。
查找没有依赖项的代码。
检查这些区域以确定它们是否必要,或者您是否应移除此代码。
您可以对这些关系图运行特定分析器来帮助执行这些任务。 这些分析器在应用之后将继续运行。 如果您更改关系图,则任何应用的分析器将自动重新处理更新的关系图。 若要停止运行分析器,请在**“图例”框中右击该分析器,然后单击“删除”**。
提示
如果您有一个非常大的关系图,则运行分析器可能会引发内存不足异常。 如果发生这种情况,请编辑关系图以减少其范围或生成一个较小的关系图,然后运行分析器。
查找代码中的复杂区域
确保关系图布局设置为树布局或快速群集布局。
有关更多信息,请参见如何:在关系图文档中浏览和导航。
右击关系图,指向**“分析器”**,然后单击以下各项之一:
分析器
若要标识具有以下特征的节点
循环引用
具有相互依赖的循环依赖关系
注意
当您展开“泛型”组时,该组内的循环依赖关系将不会显示在关系图上。查找集线器
位于前 25% 高度连接的节点中
选择这些节点并在关系图上隐藏所有其他节点
右击图形,然后单击“显示高级选择”。
在“所选内容”框中,展开“属性”,然后展开“集线器”。
在“集线器”下,单击“True”。
位于前 25% 高度连接的节点中
右击关系图,指向“所选内容”,然后单击“隐藏未选内容”。
关系图将隐藏未选定节点,并且分析器会将新节点标识为集线器。
您也可以通过将关系图布局切换到依赖关系矩阵视图来标识依赖关系的密集区域。 有关依赖关系矩阵视图的更多信息,请参见如何:在关系图文档中浏览和导航。
未引用的节点
没有来自任何其他节点的引用。
警告
在假定代码未使用之前,请验证其中每种情况。某些依赖关系(例如 XAML 依赖关系和运行时依赖关系)无法以静态方式在代码中找到。