Как NDepend можно проинструктировать игнорировать классы EF? - PullRequest
4 голосов
/ 22 августа 2011

У меня небольшая проблема с NDepend, не игнорирующим сгенерированный код.Он выявляет проблемы, связанные с методами со слишком большим количеством параметров в файле designer.cs, сгенерированном EF при создании модели данных объекта.Класс прокомментирован с помощью «автоматически сгенерированной» аннотации, но все еще обрабатывается NDepend.

Я не могу найти, как заставить * .designer.cs игнорировать или даже игнорироватьконкретный файл без подстановочных знаков.Самое близкое, что я получил, это это сообщение от пары лет назад, где Патрик упоминает о планах сделать это, но не более того.Есть ли простой способ исключить это?

1 Ответ

5 голосов
/ 22 августа 2011

Запрос кода и управление по LINQ (CQLinq) действительно предоставляет возможность игнорировать сгенерированный код .

Существует удобный предопределенный домен с именем JustMyCode типа ICodeBaseView .

Домен JustMyCode представляет собой средство CQLinqисключить сгенерированные элементы кода из результатов запроса CQLinq.Например, следующий запрос будет соответствовать только крупным методам, которые не генерируются инструментом (например, дизайнером пользовательского интерфейса):

from m in JustMyCode.Methods where m.NbLinesOfCode > 30 select m

Набор сгенерированных элементов кода определяется запросами CQLinq с префиксом ключевого слова CQLinq notmycode .Например, приведенный ниже запрос соответствует методам, определенным в исходных файлах, имя которых заканчивается на ". Designer.cs" :

notmycode from m in Methods where
  m.SourceFileDeclAvailable && 
  m.SourceDecls.First().SourceFile.FileName.ToLower().EndsWith(".designer.cs")
select m

Средство выполнения запросов CQLinq выполняет все notmycode запросы перед запросами, основанные на JustMyCode , следовательно, домен JustMyCode определен раз и навсегда.Очевидно, что компилятор CQLinq выдает ошибку, если запрос notmycode опирается на домен JustMyCode .

Существует 4 запроса notmycode по умолчанию, которые можно легко адаптироватьчтобы соответствовать вашим потребностям.Вы также можете создать дополнительные notmycode запросы:

...