Megosztás a következőn keresztül:


Kódelemzési figyelmeztetések letiltása

Ez a cikk a .NET-alkalmazás létrehozásakor a kódelemzésből származó figyelmeztetések letiltásának különböző módjait ismerteti. Az itt megadott információk segítségével letilthatja a kódminőségi szabályokat, a kódstílus-szabályokat és a külső elemző szabályokat.

Tipp.

Ha a Visual Studio-t használja fejlesztési környezetként, a villanykörte menü olyan lehetőségeket kínál, amelyek a kódot generálják a figyelmeztetések letiltásához. További információ: Szabálysértések letiltása.

A szabály letiltása

Letilthat egy figyelmeztetést okozó szabályt, ha annak súlyosságát none egy EditorConfig vagy AnalyzerConfig konfigurációs fájlban állítja be. Ez a művelet letiltja a teljes fájl vagy projekt szabályát a használt konfigurációs fájl hatókörétől függően.

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

A szabály súlyosságáról további információt a szabály súlyosságának konfigurálása című témakörben talál.

Preprocesszor-direktíva használata

Használjon #pragma figyelmeztetést (C#) vagy Tiltsa le (Visual Basic) irányelvvel, hogy csak egy adott kódsor figyelmeztetését tiltsa le.

    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

A SuppressMessageAttribute használata

A figyelmeztetést a forrásfájlban vagy a projekt globális tiltófájljában (GlobalSuppressions.cs vagy GlobalSuppressions.vb) is letilthatjaSuppressMessageAttribute. Ez az attribútum lehetővé teszi a figyelmeztetések letiltását a projekt vagy fájl csak bizonyos részeiben.

Az attribútum két szükséges pozícióparamétere SuppressMessageAttribute a szabály kategóriája és a szabályazonosító. A következő kódrészlet halad át "Usage" , és "CA2200:Rethrow to preserve stack details" ezekhez a paraméterekhez.

[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;
    }
}

Ha hozzáadja az attribútumot a globális letiltási fájlhoz, a letiltást a kívánt szintre kell korlátoznia , például "member". Megadhatja azt az API-t, amelyben a figyelmeztetést el kell tiltani a Target tulajdonság használatával.

[assembly: SuppressMessage("Usage", "CA2200:Rethrow to preserve stack details", Justification = "Not production code.", Scope = "member", Target = "~M:MyApp.Program.IgnorableCharacters")]

Használja az attribútumban hivatkozni kívánt API dokumentációazonosítójátTarget. A dokumentáció azonosítóiról további információt a dokumentációazonosító formátumában talál.

Ha el szeretné tiltani a kifejezetten megadott felhasználói forrásra leképezett fordító által létrehozott kódra vonatkozó figyelmeztetéseket, a letiltási attribútumot egy globális letiltási fájlba kell helyeznie. A következő kód például letiltja a fordító által kibocsátott konstruktorok megsértését:

[module: SuppressMessage("Design", "CA1055:AbstractTypesDoNotHavePublicConstructors", Scope="member", Target="MyTools.Type..ctor()")]

Lásd még