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()")]