2015-02-10 47 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