重新排列代码映射上的项,使其更易于阅读并提高其性能。
可以自定义代码映射,而不会影响解决方案中的基础代码。 当你希望专注于关键代码元素或传达有关代码的想法时,这非常有用。 例如,若要突出显示有趣的区域,可以在地图上选择代码元素并对其进行筛选、更改代码元素和链接的样式、隐藏或删除代码元素,以及使用属性、类别或组组织代码元素。
要求
若要创建代码映射,必须具有 Visual Studio Enterprise。
可以查看代码映射,对 Visual Studio Professional 中的代码映射进行有限的编辑。
开始使用代码图
创建代码图(有关更多详细信息,请参阅 解决方案中的映射依赖项 )。 如果不想等待映射完成生成,请单击“ 取消 ”链接随时停止生成过程。 但是,如果执行此作,则不会看到所有依赖项和链接的详细信息。
生成地图后,开始使用以下用于查看代码的提示:
查看代码中的自然依赖项群集。 在地图工具栏上,选择 “布局”,“快速群集”
。 请参阅 “更改地图布局”。
通过将相关节点分组,将地图组织成较小的区域。 折叠这些组,仅查看自动显示的组间依赖项。 请参阅 组节点。
使用筛选器来简化映射,并专注于感兴趣的节点或链接的类型。 请参阅 筛选器节点和链接。
最大化大型地图的性能。 有关详细信息,请参阅 跨解决方案映射依赖项 。例如,在地图工具栏上打开 “跳过生成 ”,以便在更新地图上的项时 Visual Studio 不会重新生成解决方案。
更改地图布局
至 | 执行这些步骤 |
---|---|
按特定方向安排整个地图的依赖流程。 这有助于你在代码中查看体系结构层。 | 在地图工具栏上,选择 “布局”,然后: - 从上到下 ![]() - 从下到上 ![]() - 从左到右 ![]() - 从右到左 ![]() |
在代码中查看自然依赖项群集,这些节点位于群集中心,这些群集外部的依赖节点最少。 | 在地图工具栏上,选择“布局”,然后在![]() |
在地图上选择一个或多个节点。 | 单击某个节点以将其选中。 若要选择或取消选择多个节点,请在单击时按住 Ctrl 。 键盘:按 Tab 或使用箭头键将点状焦点矩形移动到节点,然后按 SPACE 将其选中。 按 CTRL + 空格 进行多选或取消选择节点。 |
在地图上移动特定节点。 | 拖动节点以移动它们。 若要在拖动节点时将其他节点和链接移开,请按住 SHIFT 键。 键盘:按住 Ctrl 并按箭头键。 |
在不影响地图上其他节点和组的情况下,更改组内的布局。 | 选择节点并打开快捷菜单。 选择 “布局 ”并选择布局样式。 - 或 - 选择一个节点并将其展开以显示子节点。 单击节点标题以显示组弹出工具栏,然后打开 “更改组 ![]() 有关详情,请参阅组节点。 |
撤消地图中的操作。 | 按 Ctrl + Z 或使用 Visual Studio 撤消 命令。 |
浏览地图
至 | 执行这些步骤 |
---|---|
扫描地图。 | 使用鼠标向任意方向拖动地图。 - 或 - 按住 SHIFT 并旋转鼠标滚轮以水平滚动。 按住 Shift + Ctrl 并旋转鼠标滚轮以水平滚动。 |
放大或缩小地图。 | 旋转鼠标滚轮。 - 或 - 使用代码映射工具栏上的 “缩放 ”下拉列表。 - 或 - 使用键盘快捷方式。 若要放大,请按 Ctrl + Shift + 。 (句点)。 若要缩小,请按 Ctrl + SHIFT + ( 逗号)。 |
使用鼠标放大特定区域。 | 按住鼠标右键,同时在感兴趣的区域周围绘制一个矩形。 |
调整大小,以适应其窗口内的代码图。 | 从代码图工具栏上的缩放列表中选择缩放以适应。 - 或 - 单击代码图工具栏上的“缩放到合适大小”图标 ![]() |
按其名称查找地图上的节点。 提示: 这仅适用于地图上的项。 要在解决方案中找到但不在地图上的项,请在 解决方案资源管理器中找到它们,然后将它们拖到地图上。 (拖动所选内容,或在 解决方案资源管理器 工具栏上单击“ 代码图上显示”)。 | 1. 选择代码图工具栏中的“查找”图标![]() 2.键入项目名称,然后按 Return 或单击“放大镜”图标。 与搜索匹配的第一项将显示在地图上。 3.若要自定义搜索,请打开下拉列表并选择搜索选项。 选项为 “查找下一步”、“ 查找上一步”和 “全选”。 然后单击搜索文本框旁边的相应按钮。 ![]() 或者,使用键盘:按 F3 选择下一个匹配节点或 SHIFT + F3 以选择上一个匹配节点。 4.选择任一选项,通过单击搜索文本框下面的图标来指定搜索词的处理方式。 ![]() 选项为从左到右、匹配大小写、仅全字匹配、使用 .NET 正则表达式语法以及自动展开组以显示匹配的包含项。 重要提示:只有当这些组之前曾展开过,才可以使用搜索框在折叠组中查找匹配。 若要查找这些匹配项并自动展开其父组,请在搜索框下选择此选项。 |
选择所有未选择的节点。 | 打开所选节点的快捷菜单。 选择“选择”、“反向选择”。 |
选择链接到所选节点的其他节点。 | 打开所选节点的快捷菜单。 选择 “选择” ,然后选择以下选项之一: - 若要选择直接链接到所选节点的其他节点,请选择 “传入依赖项”。 - 若要从所选节点中选择直接链接的其他节点,请选择 “传出依赖项”。 - 若要选择直接与所选节点相连的额外节点,请选择“两者”。 - 若要选择与所选节点相连的所有节点,请选择“已连接子图”。 - 若要选择所选节点的所有子节点,请选择“子节点”。 |
筛选节点和链接
至 | 执行这些步骤 |
---|---|
显示或隐藏“筛选器”窗格。 | 选择代码映射工具栏上的 “筛选器 ”按钮。 默认情况下, “筛选器 ”窗格在 解决方案资源管理器中显示为选项卡式页面。 |
筛选地图上显示的节点类型。 | 在“筛选器”窗格中的 “代码元素 ”列表中设置或清除复选框。 |
筛选地图上显示的链接类型。 | 在“筛选器”窗格中的“ 关系 ”列表中设置或清除复选框。 |
在地图上显示或隐藏测试项目节点。 | 在“筛选器”窗格中的“杂项”列表中设置或清除“测试资产”复选框。 |
地图图例面板中显示的图标反映了你在列表中所做的设置。 若要显示或隐藏图例面板,请单击代码图工具栏上的 “图例 ”按钮。
检查节点和链接
代码图显示以下类型的链接:
单个链接表示两个节点之间的单个关系。
跨组链接表示不同组中两个节点之间的关系。
聚合链接表示指向两个组之间同一方向的所有关系。
小窍门
默认情况下,地图仅显示所选节点的跨组链接。 若要更改此行为以显示或隐藏组之间的聚合链接,请单击代码图工具栏上的 “布局 ”,然后选择“ 高级”,然后选择“ 显示所有跨组链接 ”或 “隐藏所有跨组链接”。 有关更多详细信息 ,请参阅“隐藏”或“显示节点和链接 ”。
至 | 执行这些步骤 |
---|---|
请参阅有关节点或链接的详细信息。 | 将鼠标指针移到节点或链接的顶部,直到出现工具提示。 聚合链接的工具提示列出了它所表示的各个依赖项。 - 或 - 打开节点或链接的快捷菜单。 选择 “编辑”, “属性”。 |
显示或隐藏组的内容。 | - 若要展开组,请打开节点的快捷菜单,然后选择“ 组”, 展开。 - 或 - 将鼠标指针移到节点顶部,直到显示 V 形(向下箭头)按钮。 单击此按钮以展开该组。 键盘:若要展开或折叠所选组,请按 PLUS 键 (+) 或 减号 键 (-)。 - 若要折叠组,请打开节点的快捷菜单,然后选择“ 组”, “折叠”。 - 或 - 将鼠标指针移到组顶部,直到显示 V 形(向上箭头)按钮。 单击此按钮以折叠该组。 - 若要展开所有组,请按 CTRL + A 选择所有节点。 打开地图的快捷菜单,然后选择“ 组”, 展开。 注意: 如果展开所有组会生成不可用的映射或内存问题,则此命令不可用。 建议仅将地图扩展到所关注的详细信息级别。 - 若要折叠所有组,请打开节点或地图的快捷菜单。 依次选择“组”、“全部折叠”。 |
请参阅命名空间、类型或成员的代码定义。 | 打开节点的快捷菜单,然后选择 “转到定义”。 -或- 双击节点。 对于已展开的组,双击组的标头。 -或- 选择节点并按 F12。 例如: - 对于包含一个类的命名空间,该类的代码文件将打开以显示该类的定义。 在其他情况下, “查找符号结果 ”窗口显示代码文件列表。 注意: 在 Visual Basic 命名空间上执行此任务时,命名空间后面的代码文件不会打开。 在包含 Visual Basic 命名空间的一组选定节点上执行此任务时,也会出现此问题。 若要解决此问题,请手动浏览到命名空间后面的代码文件,或从所选内容中省略命名空间的节点。 - 对于类或分部类,该类的代码文件将打开以显示类定义。 - 对于方法,将打开父类的代码文件以显示方法定义。 |
检查参与聚合链接的依赖关系和相关项目。 | 选择感兴趣的链接并打开所选内容的快捷菜单。 选择“ 显示参与链接 ”或 “在新代码图上显示参与链接”。 Visual Studio 将展开位于链接两端的组,且仅显示参与链接的项和依赖项。 注意: 检查部分组中项之间的依赖关系时,可能会看到以下行为:
![]() |
检查不同组中多个节点之间的依赖关系。 | 展开组,以便你可以看到其所有子级。 选择包括其子级在内的,你感兴趣的所有节点。 地图显示所选节点之间的跨组链接。 若要选择组中的所有节点,请在绘制该组周围的矩形时按住 Shift 和鼠标左键。 若要选择地图上的所有节点,请按 CTRL+A。 提示: 若要随时显示跨组链接,请选择地图工具栏上的 “布局 ”, “高级”, “显示所有跨组链接”。 |
查看节点或链接引用的项。 | 打开节点的快捷菜单,然后选择 “查找所有引用”。 注意: 仅当节点或链接在映射的 .dgml 文件中设置了Reference 属性时才适用。 若要从节点或链接添加对项的引用,请参阅 通过编辑 DGML 文件自定义代码映射。 |
隐藏或显示节点和链接
隐藏节点会阻止它们参与布局算法。 默认情况下,跨组链接处于隐藏状态。 跨组链接是跨组连接节点的单个链接。 如果组处于折叠状态,则代码图会将所有跨组链接聚合为组之间的单个链接。 展开组并选择组中的节点时,将显示跨组链接,并显示该组中的依赖项。
谨慎
在与使用 Visual Studio Professional 的用户共享在 Visual Studio Enterprise 中创建的映射之前,请确保取消隐藏希望其他人查看的任何节点或跨组链接。 否则,这些用户将无法取消隐藏这些项目。
隐藏或显示节点
至 | 执行这些步骤 |
---|---|
隐藏所选节点。 | 1.选择要隐藏的节点。 2.打开所选节点或地图的快捷菜单。 依次选择“选择”、“隐藏所选内容”。 |
隐藏未选择的节点。 | 1.选择要保持可见的节点。 2.打开所选节点或地图的快捷菜单。 选择选择,隐藏未选项目。 |
显示隐藏的节点。 | - 若要显示组内的所有隐藏节点,请先确保展开组。 打开快捷菜单,然后依次选择“选择”、“取消隐藏子级” 。 - 或 - 单击组左上角的“取消隐藏子级” ![]() - 若要显示所有隐藏的节点,请打开地图或节点的快捷菜单,然后选择 “选择”, “全部隐藏”。 |
隐藏或显示链接
至 | 在地图工具栏上,依次选择“布局”、“高级”和“选择” |
---|---|
随时显示跨组链接。 | 显示所有跨组链接。 这会隐藏组之间的聚合链接。 |
随时隐藏跨组链接。 | 隐藏所有跨组链接 |
仅显示所选节点的跨组链接。 | 显示所选节点上的跨组链接 |
隐藏所有链接。 | 隐藏所有链接。 若要再次显示链接,请选择上面列出的选项之一。 |
组节点
至 | 执行这些步骤 |
---|---|
将容器节点显示为组节点或叶节点。 | 若要将容器节点显示为叶节点:选择节点,打开所选内容的快捷菜单,然后选择 “组”,“ 转换为叶”。 若要将容器节点显示为组节点:选择节点,打开所选内容的快捷菜单,然后选择“ 组”,“ 转换为组”。 |
更改组内的布局。 | 选择组,打开快捷菜单,选择 “布局”,然后选择所需的布局样式。 - 或 - 1. 选择该组,并确保其处于展开状态。 2.再次单击组标题,并显示组工具栏。 ![]() 3.打开 “更改组 列表 ![]() 列表视图 将组的成员重新排列到列表中。 Graph 默认值 将组布局重置为地图默认布局。 有关其他选项,请参阅 “更改地图布局”。 |
将节点添加到组。 | 将节点拖至组上。 拖动节点时,Visual Studio 会显示一个指示器,显示要移动节点。 你还可以将节点拖出组。 |
将节点添加到非组节点。 | 将节点拖到目标节点上。 可以通过向其添加节点将任何目标节点转换为组。 |
对所选节点进行分组。 | 1.选择要分组的节点。 弹出工具栏显示在所选的最后一个节点上方。![]() 2. 在工具栏上,选择第四个图标 组所选节点 (如果该节点已展开,它将有五个而不是四个图标)。 键入新组的名称,然后按 Return。 - 或 - 选择要分组的节点,然后打开所选内容的快捷菜单。 选择“组”,添加父组,键入新组的名称,然后按 Return。 可以重命名组。 打开组的快捷菜单,然后选择“ 编辑”, “属性 ”以打开“Visual Studio 属性”窗口。 在 Label 属性中,根据需要重命名组。 |
移除组。 | 选择要删除的组或组。 打开所选内容的快捷菜单,然后选择“ 组”, “删除组”。 |
从其父组中删除节点。 | 选择要移动的节点。 打开所选内容的快捷菜单,依次选择“组”、“从父级移除” 。 这会移除节点,直至其祖父级,或者,如果其没有祖父组,则移除组外部的节点。 - 或 - 选择节点并将其拖出组。 |
添加、删除或重命名节点、链接和注释
可以在地图上显示更多或更少的项,以便向下钻取或简化地图。 还可以重命名项,并向项目添加注释。
谨慎
在与使用 Visual Professional 的用户共享使用 Visual Studio Enterprise 创建的映射之前,请确保希望其他人看到的任何代码元素都在地图上可见。 否则,这些用户将无法检索已删除的代码元素。
为代码元素添加节点
至 | 执行这些步骤 |
---|---|
在当前鼠标指针位置添加新的泛型节点。 | 1.将鼠标指针移到要放置新代码元素的地图上的位置,然后按 Insert。 - 或 - 打开地图的快捷菜单,然后选择 “编辑”、“ 添加”、“ 通用节点”。 2.键入新节点的名称,然后按 Return。 |
在当前鼠标指针位置添加特定类型的代码元素节点。 | 1. 将鼠标指针移动到要放置新代码元素的地图上的位置,并打开地图的快捷菜单。 2.选择 “编辑”、“ 添加”,然后选择所需的节点类型。 3.键入新节点的名称,然后按 Return。 |
将泛型或特定类型的代码元素节点添加到组。 | 1.选择组节点并打开快捷菜单。 2.选择 “编辑”、“ 添加”,然后选择所需的节点类型。 3.键入新节点的名称,然后按 Return。 |
添加同一类型的新节点,并从现有节点链接。 | 1.选择代码元素。 弹出工具栏显示在其上方。![]() 2.在工具栏上,选择第二个图标 “创建与此节点相同的类别的节点”,并向其添加新链接。 3. 在地图上选择一个位置以放置新代码元素,然后单击鼠标左键。 4.键入新节点的名称,然后按 Return。 |
添加一个新的一般节点,其链接自具有焦点的现有代码元素。 | 1.使用键盘,按 Tab ,直到要链接的代码元素具有焦点(点状矩形)。 2. 按 Alt+插入。 3.键入新节点的名称,然后按 Return。 |
添加链接到具有焦点的现有代码元素的新泛型节点。 | 1.使用键盘,按 Tab ,直到要链接的代码元素具有焦点(点状矩形)。 2. 按 Alt+Shift+插入。 3.键入新节点的名称,然后按 Return。 |
为以下情况添加代码元素 | 执行这些步骤 |
---|---|
解决方案中的代码元素。 | 1.在 解决方案资源管理器中查找代码元素。 使用 解决方案资源管理器 搜索框或浏览解决方案。 提示: 若要查找依赖于类型或成员的代码元素,请在 解决方案资源管理器中打开该类型或成员的快捷菜单。 选择你感兴趣的关系。 解决方案资源管理器 仅显示具有指定依赖项的代码元素。 2.将感兴趣的代码元素拖到地图图面。 还可以从类视图或对象浏览器拖动代码元素。 - 或 - 在 解决方案资源管理器中,选择要映射的代码元素。 然后,在 “解决方案资源管理器” 工具栏上,单击“ 代码图上显示”。 默认情况下,新代码元素的父容器层次结构在地图上显示。 使用代码图工具栏上的“包括父级”按钮来更改此行为。 关闭后,只会将代码元素本身添加到映射中。 若要仅对一次拖放操作反转该行为,请在将代码元素拖动到地图时按住 Ctrl 键。 Visual Studio 将为你的选定内容中的顶级代码元素项添加代码元素。 若要查看代码元素是否包含其他代码元素,请将鼠标指针移到代码元素的顶部,以便显示 V 形(向下箭头)。 选择 V 形以展开代码元素。 若要展开所有代码元素,请按 CTRL+A 选择所有元素,打开地图的快捷菜单,然后选择“ 组”、“ 展开”。 如果展开所有组会产生不可用的映射或导致内存不足的问题,则此命令不可用。 |
与地图上的代码元素相关联的代码元素。 | 单击代码图工具栏上的“ 显示相关 ”按钮,然后选择感兴趣的相关项的类型。 - 或 - 打开代码元素的快捷菜单。 根据你感兴趣的关系类型,选择菜单上的“ 显示...” 项之一。 例如,可以看到当前项引用的项、引用当前项的项、类的基类型和派生类型、方法调用方以及包含类、命名空间和程序集的项。 有关更多详细信息,请参阅 本主题。 |
已编译的 .NET 程序集(.dll 或 .exe)或二进制文件。 | 将程序集或二进制文件从 Visual Studio 外部拖动到地图。 仅当在相同的用户访问控制 (UAC) 权限级别运行 Windows 资源管理器或文件资源管理器和 Visual Studio 时,才能从 Windows 资源管理器或文件资源管理器拖动。 例如,如果启用 UAC,并且以管理员身份运行 Visual Studio,Windows 资源管理器或文件资源管理器将阻止拖动作。 |
在现有代码元素之间添加链接
选择源代码元素。 代码元素上方会显示一个工具栏。
在工具栏上,选择第一个图标,从此节点创建一个新链接到您接下来点击的节点。
选择目标代码元素。 两个代码元素之间会显示一个链接。
或
选择地图上的源代码元素。
如果已安装鼠标,请将鼠标指针移到地图边界之外。
打开代码元素的快捷菜单,然后选择 “编辑>添加>泛型链接”。
按 Tab 键选择链接的目标代码元素。
按 Enter。
向地图上的现有节点添加注释
选择代码元素。 工具栏显示在其上方。
在工具栏上,选择第三个图标, 使用指向所选节点的新链接创建新的批注节点。
- 或 -
打开代码元素的快捷菜单,然后选择 “编辑>新批注”。
键入批注。 若要在新行上键入,请按 Shift + Enter。
向地图本身添加注释
打开地图的快捷菜单,然后选择 “编辑>新批注”。
键入批注。 若要在新行上键入,请按 Shift + Enter。
重命名代码元素或链接
选择要重命名的代码元素或链接。
按 F2,或打开快捷菜单,然后选择 “编辑>重命名”。
当编辑框出现在地图中时,请重命名代码元素或链接。
或
打开快捷菜单,然后选择 “编辑>属性”。
在 Visual Studio“属性”窗口中编辑 “标签 ”属性。
从地图中删除代码元素或链接
选择代码元素或链接,然后按 Delete 键。
- 或 -
打开代码元素或链接的快捷菜单,然后选择 “编辑>删除”。
如果元素或链接是组的一部分,则组内将显示“重新提取子级”按钮
。 单击此项可检索缺少的元素和链接。
你可以从地图中删除代码元素和链接,而不会影响基础代码。 删除它们时,将从 DGML (.dgml) 文件中删除其定义。
通过编辑 DGML、添加未定义代码元素或使用某些早期版本的 Visual Studio 创建的映射不支持此功能。
标记代码元素供后续处理
选择要标记的后续代码元素或链接。
打开快捷菜单并选择“编辑”>“标记为跟进工作” 。
默认情况下,代码元素获得红色背景。 请考虑向其添加注释,并提供适当的后续信息。
通过选择 “编辑>其他标志颜色”来更改元素的背景色或清除后续标志。
更改代码元素或链接的样式
可以使用预定义的图标和颜色更改代码元素和链接上的图标以及代码元素的颜色。 例如,可以选择颜色来突出显示具有特定类别或属性的代码元素和链接。 这样,便可以识别并专注于地图的特定区域。 可以通过编辑地图的 .dgml 文件来指定自定义图标和颜色;请参阅 通过编辑 DGML 文件自定义代码映射。
将预定义的颜色或图标应用于具有特定类别或属性的代码元素或链接
在代码图工具栏上,选择“图例”。
在 “图例 ”框中,查看代码元素类别或属性是否已显示在列表中。
如果列表不包含类别或属性,请在“图例”框中选择+,然后选择“节点属性”、“节点类别”、“链接属性”或“链接类别”。 然后选择属性或类别。 类别或属性现在显示在 “图例 ”框中。
注释
若要创建类别或属性并将其分配给代码元素,可以编辑地图的 .dgml 文件;请参阅 通过编辑 DGML 文件自定义代码映射。
在 “图例” 框中,单击添加的类别或属性旁边的图标,或单击您想更改的类别或属性旁边的图标。
使用下表选择要更改的样式:
若要更改 选择 背景色 背景 轮廓颜色 笔划 文本颜色(显示字母“f”以显示结果) 前景 图标 图标 将显示 “颜色集选取器 ”或“ 图标集选取器 ”对话框,以便选择颜色或图标。
在 “颜色集选取器 ”或“ 图标集选取器 ”对话框中,执行下列作之一:
若要应用 执行这些步骤 颜色集合或图标集合 打开“选择颜色集”(或“图标集”)列表。 选择一组颜色或图标。 特定颜色或图标 打开类别或属性值列表。 选择颜色或图标。 注释
可以在 图例 框中重新排列、删除或暂时停用样式。 请参阅 “编辑图例”框。
编辑“图例”框
可以在 图例 框中重新排列、删除或暂时停用样式:
打开“图例”框中样式的快捷菜单。
执行以下任务之一:
至 选择 停用代码元素 禁用 删除代码元素 删除 向上移动样式 上移 将代码元素向下移动 下移
将样式从一个地图复制到另一个地图
确保“图例”框出现在源代码图上。 如果它不可见,请在地图工具栏上单击“ 图例”。
打开“图例”框的快捷菜单。 选择 “复制图例”。
将图例粘贴到目标地图上。
合并代码图
可以通过在映射之间复制和粘贴代码元素来合并映射。 如果代码元素标识符匹配,则粘贴代码元素类似于合并作。 若要简化此任务,请将要可视化的所有程序集或二进制文件放在同一文件夹中,以便每个程序集或二进制文件的完整路径都与要合并的每个映射相同。
或者,您可以将这些程序集或二进制文件从该文件夹拖动到同一目录。