NDepend - 查询减少矩阵

时间:2015-02-10 11:48:51

标签: ndepend

我正在使用NDepend编写查询以将我的程序集及其依赖程序集的子集提取到依赖关系矩阵中。

我想进一步减小矩阵的大小,以便仅显示具有小型或中型耦合的相关组件(相对容易解耦的那些)因此我只想显示具有< 20方法用法。

如何更新此查询以显示此内容?

let agentAssemblies =Assemblies.WithNameLike("Agent")
let assembliesUsedByAgents = Assemblies.ExceptThirdParty().UsedByAny(agentAssemblies)
from a in agentAssemblies.Union(assembliesUsedByAgents )
select a

1 个答案:

答案 0 :(得分:2)

您可以通过以下方式优化查询:

let agentAssemblies = Assemblies.WithNameLike("Agent")
let assembliesUsedByAgents = Assemblies.ExceptThirdParty().UsedByAny(agentAssemblies)

from a in assembliesUsedByAgents 
let methodsUsedFromAgentAssemblies = a.ChildMethods.UsedByAny(agentAssemblies)
where methodsUsedFromAgentAssemblies.Count() < 20
let agentAssembliesMethodsUsingMe = agentAssemblies.ChildMethods().UsingAny(methodsUsedFromAgentAssemblies)
select new { 
   a, 
   methodsUsedFromAgentAssemblies , 
   agentAssembliesMethodsUsingMe 
}

从代码查询结果中,您可以看到 methodsUsedFromAgentAssemblies agentAssembliesMethodsUsingMe ......

NDepend Dependency Query

..通过右键单击方法集,您可以将两个集导出到依赖关系矩阵,以清楚地了解哪个方法正在调用哪个方法。

NDepend Dependency Matrix