Postup potlačení upozornění analýzy kódu

Tento článek popisuje různé způsoby, jak můžete potlačit upozornění při analýze kódu při sestavování aplikace .NET.

Tip

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

Zakázat pravidlo

Zakázáním pravidla analýzy kódu, které způsobuje upozornění, zakážete pravidlo pro celý soubor nebo projekt (v závislosti na rozsahu konfiguračního souboru , který používáte). Pokud chcete pravidlo zakázat, nastavte jeho závažnost na none v konfiguračním souboru.

[*.{cs,vb}]
dotnet_diagnostic.<rule-ID>.severity = none

Další informace o závažnosti pravidel najdete v tématu Konfigurace závažnosti pravidla.

Použití direktivy preprocesoru

pomocí direktivy #pragma warning (C#) nebo disabled (Visual Basic) potlačit upozornění pouze na 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í SuppressMessageAttribute

Můžete použít, chcete-li SuppressMessageAttribute potlačit upozornění buď ve zdrojovém souboru, nebo v souboru globálních potlačení pro projekt (GlobalSuppressions. cs nebo GlobalSuppressions. vb). Tento atribut poskytuje způsob, jak potlačit upozornění v určitých částech projektu nebo souboru.

Dva požadované poziční parametry pro SuppressMessageAttribute atribut jsou kategorie pravidla a ID pravidla. Následující fragment kódu projde "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 IngorableCharacters()
{
    try
    {
        ...
    }
    catch (Exception e)
    {
        throw e;
    }
}

Pokud přidáte atribut do souboru globálních potlačení, zadáte Rozsah potlačení na požadovanou úroveň, například "member" . Určete rozhraní API, kde 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.IngorableCharacters")]

Použijte ID dokumentace k rozhraní API, na které chcete odkazovat v Target atributu. Informace o ID dokumentace najdete v tématu formát ID dokumentace.

Chcete-li potlačit upozornění pro kód generovaný kompilátorem, který není namapován na explicitně poskytnutý zdroj uživatele, je nutné umístit atribut potlačení 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("Microsoft.Design", "CA1055:AbstractTypesDoNotHavePublicConstructors", Scope="member", Target="MyTools.Type..ctor()")]

Viz také