2013-12-07 3 views
6

Я запускаю NDepend против моего проекта C# в VS 2012. Существует определенное «нарушение критического правила», на которое я смотрел, и решил, что хочу оставить как есть. Я хочу сказать NDepend, чтобы игнорировать это одно нарушение и НЕ подсчитывать его против моего критического количества нарушений правил, так что я могу получить точку внизу, чтобы она перестала быть красной.Могу я сказать NDepend, чтобы игнорировать единственный результат?

Если это имеет значение: это «функция со слишком большим количеством параметров». Целью функции является внесение записи в журнал в таблицу базы данных, и мне нужно передать все значения (11 из них) для заполнения таблицы (после применения к ним некоторой логики). Я полагаю, что я мог бы поместить все значения в структуру или класс и передать это как одно значение, но не было бы другого использования для структуры/класса, чем для вызова этой функции, поэтому для меня это кажется глупым.

Итак, я искал способ сделать что-то вроде щелчка правой кнопкой мыши по результату и выбрать «навсегда игнорировать этот результат», например, вы можете сделать это с помощью проверки орфографии, но я не вижу такой опции ,

Есть ли способ сделать это?

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

ответ

2

Вы можете изменить правило тела CQLinq таким образом:

// <Name>Methods with too many parameters</Name> 
warnif count > 0 from m in JustMyCode.Methods 
.WithFullNameNotIn("MyNamespace.MyType.MyMethod1(String,Int32,Int32,Boolean,String,Int32,Int32,Boolean,String,Int32,Int32,Boolean)", 
        "MyNamespace.MyType.MyMethod2(String,Int32,Int32,Boolean,String,Int32,Int32,Boolean,String,Int32,Int32,Boolean)", 
        ...) 
where 
    m.NbParameters > 5 
    orderby m.NbParameters descending 
select new { m, m.NbParameters } 

Обратите внимание, что тело правила содержит метод (ы), чтобы исключить полных имен. Чтобы получить полное имя метода, просто щелкните правой кнопкой мыши метод в результате и выберите меню Скопируйте имя в буфер обмена.

Exclude method from NDepend code rule result

В качестве альтернативы, если вы хотите, чтобы подавить метод из всех правил результатов, вы можете использовать JustMyCode/notmycode facility.

+1

Спасибо, что сработало отлично! – JoeMjr2

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