Disabilitare StyleCop per specifiche linee
Domanda
Stiamo utilizzando StyleCop nei nostri progetti C #. In alcuni casi, vorremmo evitare le regole però. So che è possibile aggiungere // <auto-generated />
all'inizio del file per rendere StyleCop ignorarlo. Tuttavia, non voglio ignorare le regole per l'intero file - solo un blocco di codice all'interno di esso.
È possibile disattivare StyleCop per le linee specifiche in qualche modo?
Soluzione
È possibile sopprimere le regole con l'aggiunta di attributi ai blocchi di codice. Ecco un semplice esempio su una classe del post sul blog collegato al di sotto, ma è possibile farlo su vari membri individualmente:
[SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "SA1600:ElementsMustBeDocumented")]
public class MyUndocumentedClass
{
public void MyUndocumentedMethod {}
}
C'è un rapida panoramica ad un MSDN post sul blog e un descrizione più completa delle caratteristiche su MSDN.
Altri suggerimenti
Una vecchia questione lo so, ma in cerca di una risposta che ha rilevato che in StyleCop 4.4 è ora possibile mettere qualcosa di simile - o una di queste linee su un metodo:
[SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.SpacingRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.MaintainabilityRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.LayoutRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.NamingRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.ReadabilityRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.OrderingRules", "*", Justification = "Risky to change manually")]
- Nota: potrei mancare una o due delle categorie di regole
ragazzo sembra hanno un buon generale ignorare mod; Egli suggerisce di mettere questo nella parte superiore del file - provato e funzionando con R #
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// </auto-generated>
//------------------------------------------------------------------------------
Utile per quando si è solo a sfornare un carico di boilerplate di aderire a un'interfaccia prevalentemente implementato, per esempio.
Si può mettere il pezzo di codice tra un nome di regione codice generato e sarà ommited.
Decora il tuo classe o un metodo con il seguente StyleCop attributo:
[GeneratedCode("Tool Goes Here", "Message Goes Here")]