如何使用NDepend显示将Class连接到Class的关系?

时间:2013-02-28 14:46:10

标签: dependencies ndepend cqlinq

背景

驾车穿越未知城市时,通常最好有一张地图可以帮助引导您前往目的地。同样,在第一次查看遗留代码时,通常最好有一个可以概述应用程序内部关系的图表。

示例

在这种情况下,我被要求查看遗留的{以数据为中心的}应用程序,以便更好地了解它如何管理它的数据库连接。或者更具体地说,我正在尝试生成一个类图,其中概述了ProgramSystem.Data.Common.DbConnection之间的关系。

问题

我对NDepend相对较新,并且在编写适当的CQLinq语句时遇到困难。不幸的是,以下内容仅显示程序集及其相互之间的关系。如何修改此查询以显示两种类型之间的关系?

非常感谢您提供的任何见解!

from t in Assemblies
where t.DepthOfIsUsedBy("MyCompany.MyProject.MyNamespace.Program") >=0 &&
t.DepthOfIsUsing("System.Data.Common.DbConnection") >=0
select new { t, t.NbLinesOfCode}

1 个答案:

答案 0 :(得分:1)

from t in Assemblies表示t是一个程序集。

您应该尝试from t in Application.Types

// <Name>Display relationships between two types</Name>
from t in Application.Types
where t.DepthOfIsUsedBy("Company.Project.NamespaceA") >=0 &&
t.DepthOfIsUsing("Company.Project.NamespaceZ") >=0
select new { t, t.NbLinesOfCode}