Sdílet prostřednictvím


Jak potlačit upozornění z 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.

Návod

Pokud jako vývojové prostředí používáte Visual Studio, kontextová nabídka žárovky poskytuje možnosti, které automaticky vygenerují kód pro potlačení upozornění. Další informace naleznete v tématu Potlačení porušení.

Zakázání pravidla

Pravidlo, které způsobuje upozornění, můžete zakázat nastavením závažnosti v nonekonfigurač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číte 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žijte atribut 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 následující 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í, můžete potlačení omezit na požadovanou úroveň, například . 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 atributu Target . Informace o ID dokumentace naleznete v 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()")]

Viz také