Как подавить правило FxCop DoNotCatchGeneralExceptionTypes с помощью SupressMessage? - PullRequest
17 голосов
/ 10 сентября 2010

У меня есть код, который ловит все и регистрирует его. Обычно я этого не делаю, но я пишу обработчик 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 Ответ

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

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

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

Источник

...