2010-09-10 6 views
17

Tengo un código que atrapa todo y lo registra. Normalmente no hago esto, pero estoy escribiendo un controlador HTTP y quiero devolver un código HTTP apropiado. De todos modos, estoy poniendo lo siguiente en la parte superior de mi método:¿Cómo suprimo la regla de FxCop 'DoNotCatchGeneralExceptionTypes' con SupressMessage?

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

FxCop es aparentemente haciendo caso omiso de esto, que es muy frustrante. ¡Especialmente porque también ignora todas mis palabras compuestas!

¿Alguna idea de por qué está haciendo esto? Estoy usando FxCop 10 que es parte de Windows 7/.NET 4 SDK.

Respuesta

19
  1. En el Explorador de soluciones , haga clic en el proyecto y seleccione Propiedades .
  2. En la ventana Propiedades, elija la pestaña Generar.
  3. En el cuadro de texto símbolos de compilación condicional, introduzca CODE_ANALYSIS.
  4. En el código en el que desea suprimir ciertos mensajes, agregar el espacio de nombres System.Diagnostics.CodeAnalysis a la sección de usar.
  5. En FxCop, haga clic con el botón derecho en el mensaje que desea suprimir y seleccione Copiar como -> SuprimirMensaje.
  6. En su código C#, pegue el atributo SuppressMessage en su código .

Su SupressMessage parece correcto, por lo que podría ser el símbolo de la compilación condicional que faltan!

Espero que esto ayude, al menos funciona en mi máquina;) Greetz, Tom.

Source

+0

Gracias Tom, esta no es la primera vez que me he olvidado de ese símbolo! : | –

Cuestiones relacionadas