2010-07-15 3 views
8

¿cómo puedo suprimir las advertencias de FxCop para todo un tipo?¿Cómo puedo obtener FxCop para suprimir advertencias para todo un tipo?

namespace ConsoleApplication1 
{ 

    public static class Serializer<T> 
    { 
     public static string Serialize(T obj) 
     { 
      return string.Empty; 
     } 


     public static T Deserialize(string str) 
     { 
      return default(T); 
     } 
    } 

probado esto, pero no funciona para mí:

[assembly: SuppressMessage("Microsoft.Design", "CA1000:DoNotDeclareStaticMembersOnGenericTypes", Scope = "Type", Target = "ConsoleApplication1.Serializer'1")] 

Respuesta

8

Por desgracia, esto no funcionará. FxCop solo procesa las supresiones que se declaran contra el mismo objetivo que una infracción detectada. Si encuentra una violación en su método de serialización, los únicos atributos de SuppressMessage que "ocultará" esa violación son uno declarado en el método o uno cuya propiedad Target identifica el método.

Si desea suprimir una violación de CA1000 para cada uno de sus métodos estáticos en la clase Serializer, tendrá que hacer esto creando un atributo SuppressMessage para cada uno de esos métodos.

+2

¿Cuál es el objetivo del argumento Scope? :( –

+5

Le permite a FxCop saber qué tipo de cosa representa el argumento Target. Por ejemplo, si el objetivo es "ABC", ¿eso se refiere a un espacio de nombres llamado ABC o una clase llamada C en el espacio de nombres AB? "Scope" debería probablemente ser nombrado algo así como "TargetKind", pero eso, lamentablemente, no cambia lo que realmente representa ... –

Cuestiones relacionadas