Могу ли я найти количество методов без количества геттеров через CQL?

Я использую ndepend для поиска проблем с кодом. И прямо сейчас я обнаружил, что слишком много ложных срабатываний ошибок.

Например, у меня есть класс, который совсем не сложен, но имеет много свойств. Итак, я получу предупреждение от NDepend о том, что в классе слишком много методов.

Вот стандартное правило NDepend, требующее классы с большим количеством методов:

WARN IF Count > 0 IN SELECT TYPES WHERE 
NbMethods > 20 
ORDER BY NbMethods DESC

Могу ли я изменить способ, которым NDepend вычисляет количество методов, чтобы я мог исключать свойства там, где я хочу?


person Sergei    schedule 08.12.2011    source источник


Ответы (1)


Могу ли я изменить способ, которым NDepend вычисляет количество методов, чтобы я мог исключать свойства там, где я хочу?

Сергей, да, это возможно благодаря следующему правилу CQLinq:

warnif count > 0 
from t in Application.Types
let methods = t.Methods
   .Where(m => !m.IsPropertyGetter && !m.IsPropertySetter &&
               !m.IsConstructor)
where methods.Count() > 20
orderby methods.Count() descending
select new { t, methods }

Здесь вы получите не только количество методов, но и для каждого типа вы получите все методы:

введите здесь описание изображения

person Patrick from NDepend team    schedule 08.12.2011