探索类型依赖图
dotPeek 允许您直观地研究解决方案中类型之间的依赖关系。 您可以从不同的项目或已编译的程序集添加任意数量的类型到类型依赖图,并研究它们之间的不同依赖关系。
构建初始图表
有几种方法可以构建新的类型依赖图:
将光标放在 代码查看器 的任意位置,然后在主菜单中选择 或调用 检查此 命令(按 Control+Shift+Alt+A ),然后选择 显示类型依赖项图。
在这种情况下,文件中的所有类型都会被添加到图表中,并可视化聚合、使用和继承 依赖关系。
在 显示用法的结果列表弹出窗口中, 转到基符号、 转到派生符号、 导航到:公开 API 或类似命令中,按 Alt+Num+ 或点击 在图上显示
。对于基类/派生符号,相应的继承层次结构部分会被添加到图表中,并且仅可视化继承 依赖关系。 对于暴露的 API,图表会显示包含返回给定类型的方法的类型,并且仅可视化返回类型 依赖关系。
在 查找结果 窗口或 类型层次结构中显示的结果列表中,点击 在图上显示
。在这些情况下,所有用法或层次结构条目都会被添加到图表中,并可视化使用/继承 依赖关系。
新创建的类型依赖图会显示在 层次结构窗口 的新选项卡中。
请注意,图表不会与解决方案同步,也就是说,如果您在代码中重命名或删除类型,图表不会发生变化。 要查看图表是否是最新的,您可以检查右下角显示的创建时间。 要将图表与当前解决方案状态同步,请点击工具栏上的 刷新
并选择 刷新类型依赖项。
调整图表视图
类型依赖图可以通过两种方式布局:
有机布局器
— 此选项根据类型的继承关系排列:基类向上移动。业务逻辑布局器
— 此选项根据它们之间显示的所有关系排列类型。
您可以使用图表左侧的相应选择器在这些选项之间切换。
在您 向图表添加或移除类型或 更改依赖过滤器后,要更新图表布局,请点击工具栏上的 刷新
并选择 刷新图表布局。
要平移图表,请点击图表区域中图表项目外的任意位置并拖动,同时显示手形光标
。 要缩放,请使用鼠标滚轮。 您还可以使用图表区域左上角的控件进行缩放和平移。
图表布局会自动计算,但如果需要,您可以更改:所有项目都可以移动。 要移动项目(类型、依赖链接或分组项目),首先点击以选择它,然后在显示十字光标
时点击并拖动它。
如果需要,您可以通过以下方式之一折叠和展开图表中的分组项目:
点击分组项目左上角的向下箭头。 折叠后,符号会变成向上箭头,您可以点击它来展开项目。
在图表中选择一个分组项目,然后按 Ctrl + 左箭头 和 Ctrl + 右箭头 。
在图表上添加和移除项目
您可以随时修改显示的图表,以便仅显示所需的类型。
如果需要,您可以通过点击 撤消
或按
Ctrl+Z
,逐步撤销在图表中所做的更改(添加/移除项目)。 要撤销 撤消 命令,请点击 重做
或按
Ctrl+Y
。
要从图表中移除类型和文件夹,可以使用分组项目右上角的叉号,或者在选择项目时按 Delete 。 或者,选择您想保留的项目,右键点击选择并在上下文菜单中选择 仅显示所选条目。 要进行多选,请 Ctrl 点击项目。
还有几种方法可以向图表添加项目:
从 Solution Explorer 中拖放类型、文件夹和项目到图表。
在 代码查看器 中选择一个类型并将其拖放到图表中。
要查找并添加所有引用的类型,右键点击一个类型或分组项目并选择 添加所有引用的类型。 如果您在分组项目(文件夹或项目)上调用此命令,dotPeek 会为当前显示的所有类型添加引用的类型。
要通过名称从 当前加载的程序集 中查找并添加类型,请在搜索字段中开始输入名称。 您可以在输入时使用通配符(例如星号
*)和 CamelHumps。
选择一个类型并按 输入 或点击一个类型将其添加到图表中。 下拉列表中以绿色高亮显示的类型已添加到图表中。 如果您选择这样的类型,图表焦点会移动到该类型。
在 详细信息 弹出窗口中,点击任何相关类型以将其添加,或者使用 将所有使用的类型添加到图表、 将所有用法添加到图表、 添加所有基类型 和 添加所有直接继承者 链接添加多个类型。
研究特定类型和容器
当节点折叠时,您可以将鼠标悬停在其上快速查看内部内容。 在出现的弹出窗口中,您可以看到此节点中添加到图表的类型数量以及从此节点引用的所有模块:

如果需要,您可以点击引用的模块和/或点击 添加缺失的项目 将此节点中的其他项目添加到图表中。
您可以双击任何类型在编辑器中打开它。 如果该类型定义在已编译的程序集内,它将根据您首选的 导航到已编译代码 的方式打开。
您可以获取任何特定类型(以及类型之间的任何 依赖关系 )的详细信息。 要获取类型的详细信息,请将鼠标悬停在其上,详细信息弹出窗口出现后,将鼠标指针移到其上。
在类型详细信息弹出窗口中,您将看到给定类型使用了哪些类型、该类型的使用位置、继承的类型、构造函数参数中使用的类型等。
如果该类型有 XML 文档,摘要也会显示在弹出窗口中。
您可以点击相关类型将其添加到图表中。 下拉列表中以绿色高亮显示的类型已添加到图表中。 如果您点击这样的类型,图表焦点会移动到该类型。 要在编辑器中打开类型本身,请点击其名称旁边的 转到声明。

研究类型之间的依赖关系
在类型依赖图中,您可以可视化几种依赖关系。 要显示或隐藏特定类型的依赖关系,请使用 筛选依赖项
选择器中的相应项目:
聚合依赖 — 显示一种依赖关系,当一个类型是其他类型的集合或容器时。
这种依赖关系显示为绿色虚线。 相应字段的名称显示在线条旁边。 您可以将鼠标悬停在此线条上查看字段声明并导航到编辑器中的相应位置。
使用依赖 — 显示一种依赖关系,当一个类型的变量、参数或方法返回值在另一个类型中使用时。
这种依赖关系显示为蓝色线条,其粗细反映了相对的使用次数。 您可以将鼠标悬停在此线条上查看使用列表:

点击特定的使用会将您带到文本编辑器中的相应位置,点击 显示所有用法 链接会在 查找结果 窗口 中打开所有使用。
继承依赖 — 显示一种依赖关系,当一个类型扩展或实现另一个类型时。 这种依赖关系显示为深绿色线条。 您可以将鼠标悬停在此线条上查看继承关系并导航到编辑器中的相应位置。
传递继承依赖使用虚线显示。 您可以将鼠标悬停在这些线条上并使用弹出窗口检查依赖关系经过的类型,并通过点击它们将这些类型添加到图表中。

返回类型依赖 — 显示一种依赖关系,当一个类型具有返回另一个类型的方法或属性时。 这种依赖关系显示为紫色线条。 您可以将鼠标悬停在此线条上查看成员列表并导航到编辑器中的相应位置。
构造函数注入 — 显示一种依赖关系,当一个类型作为另一个类型的构造函数参数暴露时。 这种依赖关系显示为棕色线条。 您可以将鼠标悬停在此线条上查看构造函数并导航到编辑器中的相应位置。
在图表上调用其他 dotPeek 功能
从图表上的项目导航
要列出 导航到 菜单中任何项目的所有可用导航目标,请按下或右键点击该项目并选择 导航到。
您可以通过按下键在选中项目时将任何项目(文件、文件夹或项目) 定位到 程序集资源管理器。
您还可以通过点击类型的 在查找结果窗口中显示所有使用的类型 或 在查找结果窗口中显示所有用法 ,在 详细信息弹出窗口中,或在 依赖链接的弹出窗口中点击 显示所有用法 列出相关用法。
将图表导出到文件
在探索依赖关系的任何阶段,您都可以使用以下工具栏按钮将图表导出到文件:
此功能的灵感来源并借鉴自 JetBrains ReSharper ,这是一款面向 Microsoft Visual Studio 的开发者生产力工具。