2015-02-10 3 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 
} 

В результате код запроса вы можете визуализировать как methodsUsedFromAgentAssemblies и agentAssembliesMethodsUsingMe ...

NDepend Dependency Query

.. и щелкнув правой кнопкой мыши hods, вы можете экспортировать оба набора в матрицу зависимостей, чтобы иметь четкое представление о том, какой метод вызывает этот метод.

NDepend Dependency Matrix

Смежные вопросы