在 类 之间为 .net Project/Solution 创建依赖关系图

Create dependency graph between classes for .net Project/Solution

是否有编程方式或工具允许遍历 project/assembly 中的所有 classes 并找出其他相关的 classes? Resharper 具有类似的功能,但我无法找到以某种易于分析的格式导出结果的方法。

我的最终目标是在 class 之间创建依赖关系图(每个 class),而不是由 project/namespace/etc

聚合

我的最终目标是获得这样的列表<Class Name>: <Dependency1>, <Dependency N>

 - Class1: Class2, Class6, Class9   
 - Class2: Class1, Class4
 - Class3: 
 - Class4: Class2, Class5

等等

更新: 我正在使用 Visual Studio 2015 高级版。

您正在查找的功能是代码映射。我不确定它们现在是否在 VS 2015 Premium 中可用,但它们在最初发布时没有。这篇文章的评论可能会对您有所帮助:New ways to quickly create a Code Map.

您还可以尝试与 VS2015(所有 SKU,包括 Premium)以及 VS 2019、2017、2013、2012、2010 所有 SKU 集成的工具 NDepend,旧版 Express SKU.

使用 NDepend,您可以在 Visual Studio C# linq queries that are compiled/executed live 中进行编辑。例如,下面的代码查询显示了所有 classes 依赖项:

from t in Application.Types
select new { t, t.TypesUsed, t.TypesUsingMe }

代码查询结果可以导出到图,这样可以生成多种依赖图:Call Graph, Class Inheritance Graph, Coupling Graph...

I wasn't able to find the way to export the results in some easy-to-analyze format.

除了 Visual Studio 中的实时代码查询外,还可以通过 API 使用 NDepend 代码查询,您可以利用它来创建 C# 程序并以任何格式导出任何数据。


新的 NDepend 版本 2020.1 现在让您可以为 class 或单击中的方法生成调用图:


免责声明:我为 NDepend

工作