2013-02-08 13 views
7

Ich arbeite in einer Anwendung und entwickeln wenige Klassen für Demozwecke. Ich weiß, dass diese Klassen in Zukunft entfernt werden.Deaktivieren Sie alle stylecop Warnungen für eine bestimmte C# -Klasse

Ist es möglich, alle stylecop Warnungen für diese Klassen zu ignorieren, da ich die Zeit nicht für diese Warnungen ausgeben möchte?

Ich suchte, aber fand, dass ich nur über Einstellungen in stylecop ignorieren kann (dies wird auch andere Klassen beeinflussen) oder zu einer bestimmten Regel (ich möchte nur alle Warnungen ignorieren).

+0

stylecop Warnungen oder Fehler? – daryal

Antwort

15

Beginnend mit StyleCop 4.4.0 ist es auch möglich, alle Regeln innerhalb eines Regelnamensraum zu unterdrücken, ein einzelnes Unterdrückung Attribut. Dies wird durch Ersetzen der Regel CheckID und des Regelnamens durch ein einzelnes Sternchen angezeigt. Im folgenden Codebeispiel werden alle Standarddokumentationsregeln von StyleCop innerhalb der inneren Klasse unterdrückt. In diesem Fall würde StyleCop immer noch einen Verstoß melden, der darauf hinweist, dass die äußere Klasse keine Dokumentation enthält, aber alle Dokumentationsregeln für die innere Klasse und deren Inhalt werden ignoriert.

public class OuterClass 
{ 
    [SuppressMessage("StyleCop.CSharp.DocumentationRules", "*")] 
    public class InnerClass 
    { 
     public void MyUndocumentedMethod 
     { 
     } 
    } 
} 

http://stylecop.soyuz5.com/Suppressions.html

-1

Sie können Regeln unterdrücken, indem Sie den Code-Blöcken Attribute hinzufügen. Hier ist ein einfaches Beispiel für eine Klasse aus der Blog-Post unter unten stehenden Link, aber man kann es auf verschiedene Mitgliedern tut individuell:

[SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "SA1600:ElementsMustBeDocumented")] 
public class MyUndocumentedClass 
{ 
    public void MyUndocumentedMethod {} 
} 
+2

dies wird nur SA1600 unterdrücken. –

18

Sie können StyleCop Trick in eine Datei überhaupt verarbeiten, indem Sie diesen Header an der Spitze:

//------------------------------------------------------------------------------ 
// <auto-generated> 
// Well, not really. This is just a trick to get StyleCop off my back. 
// </auto-generated> 
//------------------------------------------------------------------------------ 
+0

Ich tat dies, aber hat nicht funktioniert. Ich kann immer noch dieselben Warnungen sehen. –

+0

gibt es kein inhärentes Problem beim Hinzufügen von etwas zu einer automatisch generierten Datei? Dies könnte ersetzt werden, wenn der generierte Code aktualisiert wird. – DevDave

+2

@Tyler: Einfügen in eine Kopfzeile, die besagt, dass die Datei autogened ist, macht es tatsächlich nicht so. – Jon

12

Dank Bartłomiej Mucha für die Antwort, die ich gerade verwendet habe. Wie ich herausgefunden habe, funktioniert das "*" gut für die spezifische Regel, aber Sie müssen für jede Kategorie Unterdrückungen hinzufügen. Hier ist der vollständige Satz - wenn Sie diese in den Anfang einer Klasse kopieren, sollten Sie feststellen, dass alle StyleCop-Fehler unterdrückt werden:

[SuppressMessage("StyleCop.CSharp.NamingRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.LayoutRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.OrderingRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.SpacingRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
[SuppressMessage("StyleCop.CSharp.DocumentationRules", "*", Justification = "Reviewed. Suppression is OK here.")] 
internal class MyClass 
{ 
    // ... 
} 
Verwandte Themen