Как NDepend можно проинструктировать игнорировать классы EF?

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

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

Я что-то пропустил? Есть ли простой способ исключить это?

1 ответ

Решение

Code Query и Rule over 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:

Другие вопросы по тегам