2015-02-10 48 views
1

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

我想进一步缩小矩阵的大小,只显示具有小或中等耦合的相关组件(相对易于解耦的相关组件)。因此,我只想显示具有< 20的组件方法的用法。

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

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

回答

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 
} 

从码查询结果,你可以想像这两个methodsUsedFromAgentAssembliesagentAssembliesMethodsUsingMe ...

NDepend Dependency Query

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

NDepend Dependency Matrix