Bagikan melalui


Cara menekan peringatan kode analisis

Artikel ini membahas berbagai cara untuk menyembunyikan peringatan dari analisis kode saat Anda membangun aplikasi .NET. Anda dapat menyembunyikan aturan kualitas kode, aturan gaya kode, dan aturan penganalisis pihak ketiga menggunakan informasi yang disediakan di sini.

Tip

Jika Anda menggunakan Visual Studio sebagai lingkungan pengembangan, menu bola lampu menyediakan opsi yang menghasilkan kode untuk menyembunyikan peringatan untuk Anda. Untuk informasi selengkapnya, lihat Menyembunyikan peringatan.

Nonaktifkan aturan

Anda dapat menonaktifkan aturan yang menyebabkan peringatan dengan mengatur tingkat keparahannya dalam none file konfigurasi EditorConfig atau AnalyzerConfig. Tindakan ini menonaktifkan aturan untuk seluruh file atau proyek Anda, tergantung pada cakupan file konfigurasi yang Anda gunakan.

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

Untuk informasi selengkapnya tentang tingkat keparahan aturan, lihat Mengonfigurasi tingkat keparahan aturan.

Menggunakan arahan pra-prosesor

Gunakan arahan peringatan #pragma (C#) atau Nonaktifkan (Visual Basic) untuk menyembunyikan peringatan hanya untuk baris kode tertentu.

    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

Menggunakan SuppressMessageAttribute

Anda bisa menggunakan SuppressMessageAttribute untuk menyembunyikan peringatan baik dalam file sumber atau dalam file supresi global untuk proyek (GlobalSuppressions.cs atau GlobalSuppressions.vb). Atribut ini menyediakan cara untuk menyembunyikan peringatan hanya di bagian tertentu dari proyek atau file Anda.

Dua parameter posisi yang diperlukan untuk atribut SuppressMessageAttribute adalah kategori aturan dan ID aturan. Cuplikan kode berikut meneruskan "Usage" dan "CA2200:Rethrow to preserve stack details" untuk parameter ini.

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

Jika menambahkan atribut ke file supresi global, Anda mencakup penekanan ke tingkat yang diinginkan, misalnya "member". Anda menentukan API tempat peringatan harus disembunyikan dengan properti Target.

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

Gunakan ID dokumentasi untuk API yang ingin Anda referensikan di atribut Target. Untuk informasi tentang ID dokumentasi, lihat Format ID dokumentasi.

Untuk menyembunyikan peringatan bagi kode yang dihasilkan pengompilasi yang tidak memetakan ke sumber pengguna yang disediakan secara eksplisit, Anda harus menempatkan atribut supresi dalam file supresi global. Misalnya, kode berikut menyembunyikan pelanggaran terhadap konstruktor yang dipancarkan pengkompilasi:

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

Lihat juga