Ottieni FxCop per sopprimere gli avvisi per un intero tipo?

Come posso sopprimere gli avvisi di FxCop per un intero tipo?

namespace ConsoleApplication1 { public static class Serializer { public static string Serialize(T obj) { return string.Empty; } public static T Deserialize(string str) { return default(T); } } 

Ho provato questo, ma non funziona per me:

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

Sfortunatamente, questo non funzionerà. FxCop elabora solo le soppressioni dichiarate contro la stessa destinazione di una violazione rilevata. Se trova una violazione sul metodo Serialize , gli unici attributi SuppressMessage che “nascondono” tale violazione sono dichiarati sul metodo stesso o su uno la cui proprietà Target identifica il metodo.

Se si desidera sopprimere una violazione CA1000 per ciascuno dei metodi statici nella class Serializer , sarà necessario eseguire questa operazione creando un attributo SuppressMessage per ciascuno di questi metodi.

@ Matt Faus : Qual è il punto dell’argomento Scope , quindi?

L’argomento Scope consente a FxCop di sapere che tipo di argomento rappresenta l’argomento Target . Ad esempio, se Target è "ABC" , si riferisce a uno spazio dei nomi denominato ABC o una class denominata C nel namespace AB ? Scope dovrebbe probabilmente essere chiamato qualcosa come TargetKind , ma, sfortunatamente, non cambia ciò che rappresenta in realtà …

Vedi anche questa risposta .