Как подавить правило FxCop DoNotCatchGeneralExceptionTypes с помощью SupressMessage?

У меня есть код, который ловит все и регистрирует его. Обычно я этого не делаю, но пишу обработчик HTTP и хочу вернуть соответствующий код HTTP. Во всяком случае, я помещаю следующее в верхней части моего метода:

[SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Justification = "We just log the exception and return an HTTP code")]

FxCop, похоже, игнорирует это, что очень расстраивает. Тем более, что он также игнорирует все мои сложные слова переопределения тоже!

Есть идеи, почему он это делает? Я использую FxCop 10, который является частью Windows 7/.NET 4 SDK.

1 ответ

Решение
  1. В обозревателе решений щелкните правой кнопкой мыши свой проект и выберите " Свойства".
  2. В окне " Свойства" выберите вкладку " Сборка ".
  3. В текстовом поле Условные символы компиляции введите CODE_ANALYSIS.
  4. В коде, в котором вы хотите подавить определенные сообщения, добавьте пространство имен System.Diagnostics.CodeAnalysis в раздел using.
  5. В FxCop щелкните правой кнопкой мыши сообщение, которое вы хотите подавить, и выберите " Копировать как" -> "SuppressMessage".
  6. В своем коде C# вставьте атрибут SuppressMessage в свой код.

Ваше сообщение SupressMessage выглядит правильно, поэтому это может быть отсутствующий символ условной компиляции!

Надеюсь, это поможет, по крайней мере, работает на моей машине;) Привет, Том.

Источник

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