StyleCop/FxCop-10 - Wie gehen Sie richtig unterdrücken eine Nachricht nur auf namespace-Ebene?
FxCop 10 beschwert sich über Folgendes:
using XYZ.Blah; //CA1709 - "XYZ"
using Xyz.Blah; //No complaint.
using XylophoneSuperDuperLongFullName.Blah; //I don't want to have a long full name for my company name.
Das problem ist... ich möchte meinen Firmennamen zu zeigen, bis in alle GROßBUCHSTABEN, weil XYZ ist eine Abkürzung. Die lange version der name ist viel zu lang, um eine sinnvolle namespace. Microsoft kommt mit dieser Art von Sachen, weil Ihre Abkürzung ist nur 2 Buchstaben.
using MS.Something; //No Complaint.
using Microsoft.SomethingElse; //No Complaint.
So, ich war auf der Suche auf das hinzufügen von ein SuppressMessageAttribute
um diese Warnung zu unterdrücken. Aber, ich bin mir nicht sicher, wie Sie Sie richtig zu tun, nur (oder wo auch stick), so dass es wirkt sich NUR auf diese eine Instanz. Ich will nicht Unterdrücken, alles, was innerhalb dieses namespace, da will ich fangen, alle anderen Fehler, die ich mache. Ich habe mir auf der msdn und bei google gesucht, aber ich kann nichts finden, dass zeigt, wie die speziell nur auf diese Instanz. Der nächste, den ich fand, war Scope = "namespace" aber ich war nicht sicher, ob das bedeutet, dass es Einfluss auf den tatsächlichen namespace-name oder, wenn es wirkt sich auf alles, was IN diesem namespace.
Du musst angemeldet sein, um einen Kommentar abzugeben.
MSDN - CA1709: Bezeichner sollte cased richtig:
That being said, wenn Sie glauben, im Recht um die Meldung zu unterdrücken, ist es wirklich nicht schwer überhaupt. In FxCop 10 der rechten Maustaste auf jede Nachricht, die Sie unterdrücken möchten, und gehen Sie zum Kopieren Wie>Unterdrücken-Nachricht oder Kopieren Sie Als>Modul-Ebene zu Unterdrücken Nachricht.
Sollten Sie die
SuppressMessageAttribute
s in den entsprechenden stellen. Attribute, die unterdrücken einer einzigen Lage angeordnet werden soll, die Lage, zum Beispiel über eine Methode, ein Feld, eine Eigenschaft oder eine Klasse.In du bist Instanz, es gibt keine bestimmten Ort zu Ort das Attribut (standardmäßig sollte es kopieren wie
[module: SuppressMessage(...)]
. Dies ist ein gutes Indiz dafür, dass es gehört entweder an den Anfang einer Datei, wenn es ein Modul-Ebene Unterdrückung insbesondere auf eine Datei (zum Beispiel, um eine Ressource zu einer bestimmten Datei). Oder, und wahrscheinlicher, es gehört in eine GlobalSuppressions.cs-Datei.Können Sie auch verkürzen die
CheckId
Eigenschaft, wenn Sie wollen, aber es ist gut zu wissen, was CA1709 bedeutet. Wenn Sie nicht das Gefühl, wie es, funktioniert das auch:... Und schließlich... das alles wird fruchtlos sein, es sei denn, Sie gehören der 'CODE_ANALYSIS' - symbol in deinem build. Gehen Sie zu Eigenschaften - >Erstellen, und fügen Sie die bedingte Kompilierung symbol.
CODE_ANALYSIS
symbol. Ich wusste nicht, dass musste Hinzugefügt werden, in VisualStudio, und konnte nicht herausfinden, warum FxCop war nicht zu ignorieren, nichts!Acryonyms nicht dazu gedacht sein, alle Großbuchstaben in .NET Namenskonventionen. Zum Beispiel
HttpResponse
etc.Aus der Großschreibung Konventionen:
XYZ.Blah
alsXyz.Blah
. Vor allem für die abgekürzte name des Unternehmens. Also... ich will, um die Meldung zu unterdrücken, die für eben diese Instanz. 🙂#pragma warning disable
funktioniert nicht (was ich vermute, wird es nicht) ich kenne keine Möglichkeit der Deaktivierung von StyleCop Warnungen auf einen "region code" - basis.Wenn Sie waren überprüfung von Namen über StyleCop, Sie könnte verwenden StyleCop+ (benutzerdefinierte Regeln), die unterstützt konfigurierbare Abkürzungen Liste.