Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver de olika sätt som du kan förhindra varningar från kodanalys när du skapar .NET-appen. Du kan förhindra kodkvalitetsregler, kodformatregler och analysregler från tredje part med hjälp av informationen här.
Tips/Råd
Om du använder Visual Studio som utvecklingsmiljö innehåller menyn med glödlampor alternativ som genererar koden för att förhindra varningar åt dig. Mer information finns i Utelämna överträdelser.
Inaktivera regeln
Du kan inaktivera en regel som orsakar en varning genom att ange allvarlighetsgraden i none
en EditorConfig- eller AnalyzerConfig-konfigurationsfil. Den här åtgärden inaktiverar regeln för hela filen eller projektet, beroende på omfånget för den konfigurationsfil som du använder.
[*.{cs,vb}]
dotnet_diagnostic.<rule-ID>.severity = none
Mer information om allvarlighetsgraderna för regler finns i Konfigurera allvarlighetsgrad för regeln.
Använd ett förprocessordirektiv
Använd ett #pragma varningsdirektiv (C#) eller Inaktivera (Visual Basic) om du bara vill ignorera varningen för en viss kodrad.
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
Använd SuppressMessageAttribute
Du kan använda en SuppressMessageAttribute för att ignorera en varning i källfilen eller i en global undertryckningsfil för projektet (GlobalSuppressions.cs eller GlobalSuppressions.vb). Det här attributet är ett sätt att förhindra en varning i vissa delar av projektet eller filen.
De två obligatoriska positionsparametrarna för SuppressMessageAttribute attributet är kategorin för regeln och regel-ID:t. Följande kodfragment använder "Usage"
och "CA2200:Rethrow to preserve stack details"
för dessa parametrar.
[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;
}
}
Om du lägger till attributet i filen med globala undertryckningar omfångsbegränsar du undertryckningen till önskad nivå, till exempel "member"
. Du anger det API där varningen ska ignoreras med hjälp av Target egenskapen .
[assembly: SuppressMessage("Usage", "CA2200:Rethrow to preserve stack details", Justification = "Not production code.", Scope = "member", Target = "~M:MyApp.Program.IgnorableCharacters")]
Använd dokumentations-ID:t för det API som du vill referera till i attributet Target
. Information om dokumentations-ID finns i dokumentations-ID-format.
Om du vill förhindra varningar för kompilatorgenererad kod som inte mappas till uttryckligen angivna användarkällor måste du placera undertryckningsattributet i en global undertryckningsfil. Följande kod undertrycker till exempel en överträdelse mot en kompilator-genererad konstruktor:
[module: SuppressMessage("Design", "CA1055:AbstractTypesDoNotHavePublicConstructors", Scope="member", Target="MyTools.Type..ctor()")]