Kod analizi uyarılarını gizleme
Bu makale, .NET uygulamanızı oluştururken kod analizi uyarılarını engellemenin çeşitli yollarını kapsar. Burada sağlanan bilgileri kullanarak kod kalitesi kurallarını, kod stili kurallarını ve üçüncü taraf çözümleyici kurallarını gizleyebilirsiniz.
İpucu
Geliştirme ortamınız olarak Visual Studio kullanıyorsanız ampul menüsü, sizin için uyarıları engellemek için kodu oluşturan seçenekler sağlar. Daha fazla bilgi için bkz . İhlalleri engelleme.
Kuralı devre dışı bırakma
Bir EditorConfig veya AnalyzerConfig yapılandırma dosyasında önem derecesini olarak ayarlayarak uyarıya none
neden olan bir kuralı devre dışı bırakabilirsiniz. Bu eylem, kullandığınız yapılandırma dosyasının kapsamına bağlı olarak tüm dosya veya projenizin kuralını devre dışı bırakır.
[*.{cs,vb}]
dotnet_diagnostic.<rule-ID>.severity = none
Kural önem dereceleri hakkında daha fazla bilgi için bkz . Kural önem derecesini yapılandırma.
Ön işlemci yönergesi kullanma
Yalnızca belirli bir kod satırı için uyarıyı engellemek için bir #pragma uyarısı (C#) veya Disable (Visual Basic) yönergesi kullanın.
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
SuppressMessageAttribute kullanma
Bir uyarıyı kaynak dosyada veya projenin genel gizleme dosyasında (GlobalSuppressions.cs veya GlobalSuppressions.vb) engellemek için kullanabilirsinizSuppressMessageAttribute. Bu öznitelik, projenizin veya dosyanızın yalnızca belirli bölümlerindeki bir uyarıyı gizlemenin bir yolunu sağlar.
Özniteliği için SuppressMessageAttribute gerekli olan iki konumsal parametre, kuralın kategorisi ve kural kimliğidir. Aşağıdaki kod parçacığı geçirir "Usage"
ve "CA2200:Rethrow to preserve stack details"
bu parametreler için.
[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;
}
}
Özniteliğini genel gizlemeler dosyasına eklerseniz, gizlemeyi istenen düzeye (örneğin"member"
) kapsamlarsınız. Özelliğini kullanarak uyarının gizlenmesi gereken API'yi Target belirtirsiniz.
[assembly: SuppressMessage("Usage", "CA2200:Rethrow to preserve stack details", Justification = "Not production code.", Scope = "member", Target = "~M:MyApp.Program.IgnorableCharacters")]
Özniteliğinde başvurmak Target
istediğiniz API'nin belge kimliğini kullanın. Belge kimlikleri hakkında bilgi için bkz . Belge Kimliği biçimi.
Derleyici tarafından oluşturulan ve açıkça sağlanan kullanıcı kaynağıyla eşleşmeyen kod uyarılarını engellemek için, gizleme özniteliğini genel gizleme dosyasına yerleştirmeniz gerekir. Örneğin, aşağıdaki kod derleyici tarafından yayılan bir oluşturucuya karşı bir ihlali engeller:
[module: SuppressMessage("Design", "CA1055:AbstractTypesDoNotHavePublicConstructors", Scope="member", Target="MyTools.Type..ctor()")]