Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel werden die verschiedenen Möglichkeiten beschrieben, wie Sie Warnungen aus der Codeanalyse unterdrücken können, wenn Sie Ihre .NET-App erstellen. Sie können Codequalitätsregeln, Codestilregeln und Analyseregeln von Drittanbietern mithilfe der hier bereitgestellten Informationen unterdrücken.
Tipp
Wenn Sie Visual Studio als Entwicklungsumgebung verwenden, bietet das Glühbirnenmenü Optionen, die den Code generieren, um Warnungen für Sie zu unterdrücken. Weitere Informationen finden Sie unter "Unterdrücken von Verstößen".
Deaktivieren der Regel
Sie können eine Regel deaktivieren, die eine Warnung verursacht, indem Sie den Schweregrad none
in einer EditorConfig- oder AnalyzerConfig-Konfigurationsdatei festlegen. Diese Aktion deaktiviert die Regel für die gesamte Datei oder das gesamte Projekt, abhängig vom Umfang der verwendeten Konfigurationsdatei.
[*.{cs,vb}]
dotnet_diagnostic.<rule-ID>.severity = none
Weitere Informationen zu Regelschweregraden finden Sie unter Konfigurieren des Regelschweregrads.
Verwenden einer Präprozessordirektive
Verwenden Sie eine #pragma Warnung (C#) oder disable (Visual Basic) -Direktive, um die Warnung nur für eine bestimmte Codezeile zu unterdrücken.
try { ... }
catch (Exception e)
{
#pragma warning disable CA2200 // Rethrow to preserve stack details
throw e;
#pragma warning restore CA2200 // Rethrow to preserve stack details
}
Try
...
Catch e As Exception
#Disable Warning CA2200 ' Rethrow to preserve stack details
Throw e
#Enable Warning CA2200 ' Rethrow to preserve stack details
End Try
Verwenden Sie SuppressMessageAttribute
Sie können eine SuppressMessageAttribute Warnung entweder in der Quelldatei oder in einer globalen Unterdrückungsdatei für das Projekt unterdrücken (GlobalSuppressions.cs oder GlobalSuppressions.vb). Dieses Attribut bietet eine Möglichkeit, eine Warnung nur in bestimmten Teilen Ihres Projekts oder Ihrer Datei zu unterdrücken.
Die beiden erforderlichen Positionsparameter für das SuppressMessageAttribute Attribut sind die Kategorie der Regel und die Regel-ID. Der folgende Codeausschnitt übergibt "Usage"
und "CA2200:Rethrow to preserve stack details"
für diese Parameter.
[System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "CA2200:Rethrow to preserve stack details", Justification = "Not production code.")]
private static void IgnorableCharacters()
{
try
{
...
}
catch (Exception e)
{
throw e;
}
}
Wenn Sie der Datei mit den global geltenden Unterdrückungsregeln das Attribut hinzufügen, bestimmen Sie die gewünschte Unterdrückungsebene, z. B. "member"
. Sie geben die API an, in der die Warnung mithilfe der Target Eigenschaft unterdrückt werden soll.
[assembly: SuppressMessage("Usage", "CA2200:Rethrow to preserve stack details", Justification = "Not production code.", Scope = "member", Target = "~M:MyApp.Program.IgnorableCharacters")]
Verwenden Sie die Dokumentations-ID für die API, auf die Target
Sie im Attribut verweisen möchten. Informationen zu Dokumentations-IDs finden Sie im Dokumentations-ID-Format.
Sie müssen das Unterdrückungsattribut in eine Datei mit globalen Unterdrückungsregeln einfügen, um Warnungen für vom Compiler generierten Code zu unterdrücken, der nicht explizit bereitgestellten Benutzerquellen zugeordnet ist. Der folgende Code unterdrückt beispielsweise einen Verstoß gegen einen vom Compiler ausgegebenen Konstruktor:
[module: SuppressMessage("Design", "CA1055:AbstractTypesDoNotHavePublicConstructors", Scope="member", Target="MyTools.Type..ctor()")]