是否有一种编程方式或工具允许迭代项目/程序集中的所有类并找出其他依赖类? Resharper具有类似的功能,但我无法找到以一些易于分析的格式导出结果的方法。
我的最终目标是在类(每个类)之间创建依赖图,而不是由project / namespace / etc聚合
我的最终目标是获取<Class Name>: <Dependency1>, <Dependency N>
- Class1: Class2, Class6, Class9
- Class2: Class1, Class4
- Class3:
- Class4: Class2, Class5
等
更新 我正在使用Visual Studio 2015 Premium。
答案 0 :(得分:2)
您还可以尝试与VS2015(包括所有SKU,包括Premium)以及VS 2017,2013,2012,2010所有SKU集成的工具NDepend,除了较旧的 Express SKU之外的所有SKU。
使用NDepend,您可以在Visual Studio C# linq queries that are compiled/executed live中进行编辑。例如,下面的代码查询显示了所有类依赖项:
from t in Application.Types
select new { t, t.TypesUsed, t.TypesUsingMe }
代码查询结果可以导出到图形中,这样就可以生成多种依赖图:Call Graph,Class Inheritance Graph,Coupling Graph ......
我无法找到导出结果的方法 易于分析的格式。
除了在Visual Studio中进行实时代码查询之外,NDepend代码查询还可通过API获得,您可以利用它来创建C#程序并以任何格式导出任何数据。
由于图形通常无法显示涉及数百个节点的复杂结构,因此NDepend还建议Dependency Structure Matrix。
以下是复杂图表的含义。
免责声明:我为NDepend工作
答案 1 :(得分:1)
您正在寻找的功能是代码映射。我不确定他们现在是否可以在VS 2015 Premium中使用,但他们在首次发布时并未获得。对本文的评论可能会帮助您:New ways to quickly create a Code Map。