Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

  • В обозревателе решений щелкните правой кнопкой мыши свой проект и выберите Свойства.
  • В окне Свойства выберите вкладку Сборка.
  • В текстовом поле Условные символы компиляции введите CODE_ANALYSIS.
  • В коде, где вы хотите подавить определенные сообщения, добавьте Пространство имен System.Diagnostics.CodeAnalysis в разделе использования.
  • В FxCop щелкните правой кнопкой мыши сообщение, которое вы хотите подавить, и выберите Копировать как → SuppressMessage.
  • В коде С# вставьте атрибут SuppressMessage в свой код.

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

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

Источник