NDepend - 减少矩阵的查询

NDepend - Query to Reduce Matrix

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

我想进一步减小矩阵的大小以仅显示具有小型或中等耦合的依赖程序集(相对容易解耦的程序集)因此我只想显示具有 < 20种方法用法。

如何更新此查询以显示此信息?

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

您可以这样细化查询:

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 
}

从代码查询结果可以看到methodsUsedFromAgentAssembliesagentAssembliesMethodsUsingMe...

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