背景
当开车经过一个未知的城市时,最好有一张地图,可以帮助你到达目的地。类似地,当第一次查看遗留代码时,通常最好有一个可以概述应用程序内关系的图表。
示例
在这种情况下,我被要求查看遗留的{以数据为中心}应用程序,以更好地了解它是如何管理数据库连接的。或者更具体地说,我正在尝试生成一个类图,它概述了Program
和System.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}
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}