Bagikan melalui


Cara menekan peringatan analisis kode

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

Petunjuk / Saran

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

Menonaktifkan aturan

Anda dapat menonaktifkan aturan yang menyebabkan peringatan dengan mengatur tingkat keparahannya dalam nonefile 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 direktif prapemrosan

Gunakan direktif peringatan #pragma (C#) atau Nonaktifkan (Visual Basic) untuk menekan 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

Penggunaan SuppressMessageAttribute

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

Dua parameter posisi yang diperlukan untuk SuppressMessageAttribute atribut adalah kategori aturan dan ID aturan. Cuplikan kode berikut ini meneruskan "Usage" dan "CA2200:Rethrow to preserve stack details" untuk parameter-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 Anda menambahkan atribut ke file supresi global, Anda menentukan ruang lingkup penindasan pada tingkat yang diinginkan, misalnya "member". Anda menentukan API tempat peringatan diabaikan menggunakan 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 Target dalam atribut . Untuk informasi tentang ID dokumentasi, lihat format ID dokumentasi .

Untuk menekan peringatan untuk kode yang dihasilkan kompilator yang tidak terkait dengan sumber pengguna yang telah ditentukan secara eksplisit, Anda harus meletakkan atribut penekanan dalam file penekanan global. Misalnya, kode berikut mengabaikan pelanggaran pada konstruktor yang dihasilkan oleh kompilator.

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

Lihat juga