2013-08-22 2 views
2

У меня есть тип для определения и назначения некоторых статических полей readonly. Я получил нарушение для слишком больших методов (LOC)Почему NDepend count Статические поля как LOC для метода

Я хотел бы знать, есть ли у меня атрибут метода и использовал его в правиле (см. Ниже). Где в моем исходном коде мне нужно использовать этот атрибут, чтобы отказаться от метода «этот и какой»?

Пример кода: правила

enter image description here

Пример:

enter image description here

ответ

0

Почему NDepend рассчитывать статические поля как LOC для метода

Это происходит потому, что, когда вы выполнить инициализацию статического поля, это добавляет строку кода в конструктор класса. На самом деле, как только у вас есть одна статическая инициализация полей в классе, компилятор C# создает статический конструктор для вашего класса. Поэтому, если у вас есть статическая инициализация статического поля N, у вас есть метод (конструктор класса), который имеет N строк кода.

Большой метод, который содержит отчеты NDepend, называется BassAttributeNames..cctor(). Конечно, самый простой способ адаптировать ваше правило кода, чтобы избежать такого совпадения, заключается в добавлении предложения:

&& !m.IsClassContructor

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