Potlačení upozornění analýzy kódu
Tento článek popisuje různé způsoby potlačení upozornění z analýzy kódu při sestavování aplikace .NET. Pomocí zde uvedených informací můžete potlačit pravidla kvality kódu, pravidla stylu kódu a pravidla analyzátoru třetích stran.
Tip
Pokud jako vývojové prostředí používáte Visual Studio, nabízí nabídka žárovky možnosti, které vygenerují kód pro potlačení upozornění za vás. Další informace naleznete v tématu Potlačení porušení.
Zákaz pravidla
Pravidlo, které způsobuje upozornění, můžete zakázat nastavením závažnosti v none
konfiguračním souboru EditorConfig nebo AnalyzerConfig. Tato akce zakáže pravidlo pro celý soubor nebo projekt v závislosti na rozsahu použitého konfiguračního souboru.
[*.{cs,vb}]
dotnet_diagnostic.<rule-ID>.severity = none
Další informace o závažnosti pravidel naleznete v tématu Konfigurace závažnosti pravidla.
Použití direktivy preprocesoru
Pomocí direktivy #pragma warning (C#) nebo Disable (Visual Basic) potlačí upozornění pouze pro konkrétní řádek kódu.
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
Použití atributu SuppressMessageAttribute
Můžete použít SuppressMessageAttribute k potlačení upozornění ve zdrojovém souboru nebo v souboru globálního potlačení projektu (GlobalSuppressions.cs nebo GlobalSuppressions.vb). Tento atribut poskytuje způsob, jak potlačit upozornění pouze v určitých částech projektu nebo souboru.
Dva povinné, poziční parametry pro SuppressMessageAttribute atribut jsou kategorie pravidla a ID pravidla. Následující fragment kódu předá "Usage"
a "CA2200:Rethrow to preserve stack details"
pro tyto parametry.
[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;
}
}
Pokud přidáte atribut do souboru globálních potlačení, rozsah potlačení na požadovanou úroveň, například "member"
. Zadáte rozhraní API, ve kterém má být upozornění potlačeno pomocí Target vlastnosti.
[assembly: SuppressMessage("Usage", "CA2200:Rethrow to preserve stack details", Justification = "Not production code.", Scope = "member", Target = "~M:MyApp.Program.IgnorableCharacters")]
Použijte ID dokumentace pro rozhraní API, na které chcete odkazovat v atributuTarget
. Informace o ID dokumentace najdete ve formátu ID dokumentace.
Chcete-li potlačit upozornění na kód vygenerovaný kompilátorem, který není mapován na explicitně zadaný zdroj uživatele, musíte atribut potlačení umístit do globálního souboru potlačení. Například následující kód potlačí porušení proti konstruktoru generovanému kompilátorem:
[module: SuppressMessage("Design", "CA1055:AbstractTypesDoNotHavePublicConstructors", Scope="member", Target="MyTools.Type..ctor()")]