Найти код, где метод вызывается в цикле с помощью NDepend - PullRequest
0 голосов
/ 04 июля 2018

У нас есть большая кодовая база с большим количеством устаревшего кода, иногда не написанного в наиболее эффективной форме. Я хотел бы определить места, где мы можем заменить несколько вызовов метода Get одним вызовом MultiGet. В настоящее время мы используем NDepend для анализа кода, но до сих пор мне удалось только создать список мест, где используется метод Get (с использованием n. DepthOfIsUsing), который невозможно проанализировать вручную.

Как я могу запросить многократное использование определенного метода в одном методе, либо появившись в исходном коде несколько раз, либо вызываясь в запросе foreach или linq? Эти сценарии должны быть определены:

// Scenario 1
var entities = entityIds.Select(_Factory.Get).ToArray();

// Scenario 2
var entityId1 = ...;
var entityId2 = ...;
var entity1 = _Factory.Get(entityId1);
var entity2 = _Factory.Get(entityId2);

// Scenario 3
var entityIds = ...;
foreach (var id in entityIds) {
   var entity = _Factory.Get(id):
   // do something
}

Если это невозможно с NDepend, какие инструменты могут выполнить этот анализ?

...