Questo articolo è stato pubblicato 3 anni 3 mesi 14 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi.E’ possibile configurare FxCop in modo tale da non fargli analizzare parti di classi o di metodi o addirittura interi assembly. In questo modo è possibile, in gergo, far “sopprimere” un warning di FxCop, inserendo una riga di codice per ogni warning che vogliamo disabilitare.
Per fare questo ci sono due possibilità:
- Sopprimere un warning inline, cioè su un metodo, una classe o una proprietà specifica
- oppure un Global Suppressions creando un file cs (o vb) apposito
#define CODE_ANALYSIS class TaskList { [SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public IList<Task> { get { return this.tasks; } set { this.tasks = value; } } }
Se invece volessimo sopprimere un warning su tutto il nostro assembly (ma magari solo per uno specifico namespace), possiamo creare un generico file GlobalSuppressions.cs e inserire il seguente codice:
#define CODE_ANALYSIS using System.Diagnostics.CodeAnalysis; // con questa direttiva sto disabilitando tutti warning di tipo // CA1020:AvoidNamespacesWithFewTypes a livello di namespace // per tutto il name space Azienda.Progetto.Service [module: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "Azienda.Progetto.Service")]
Come si nota in entrambi gli esempi è necessario definire un simbolo CODE_ANALYSIS in modo da attivare questo tipo di funzionalità. Per avere la direttiva corretta con il warning da sopprimere in maniera facile è sufficente premere tasto destro sul messaggio di warning in FxCop Gui e selezionare Copy As -> SuppressMessage. Il codice necessario sarà copiato negli appunti.