CA1014: Tandai rakitan dengan CLSCompliantAttribute

Properti Nilai
ID Aturan CA1014
Judul Menandai rakitan dengan CLSCompliantAttribute
Kategori Desain
Perbaikan bersifat merusak atau tidak merusak Tidak terputus
Diaktifkan secara default di .NET 10 Tidak
Bahasa yang berlaku C# dan Visual Basic

Penyebab

Perakitan tidak memiliki atribut System.CLSCompliantAttribute yang diterapkan padanya.

Deskripsi aturan

Common Language Specification (CLS) menentukan batasan penamaan, jenis data, dan aturan yang harus dipatuhi oleh rakitan jika akan digunakan di seluruh bahasa pemrogram. Desain yang baik menentukan bahwa semua komponen secara eksplisit menunjukkan kepatuhan CLS dengan CLSCompliantAttribute. Jika atribut tidak ada di rakitan, perakitan tidak sesuai.

Dimungkinkan bagi rakitan yang mematuhi CLS untuk berisi jenis atau anggota jenis yang tidak sesuai.

Cara memperbaiki pelanggaran

Untuk memperbaiki pelanggaran aturan ini, tambahkan atribut ke assembly. Alih-alih menandai seluruh rakitan sebagai tidak patuh, Anda harus menentukan jenis atau anggota jenis mana yang tidak sesuai dan menandai elemen-elemen ini seperti itu. Jika memungkinkan, Anda harus memberikan alternatif yang mematuhi CLS untuk anggota yang tidak patuh sehingga audiens seluas mungkin dapat mengakses semua fungsionalitas assembly Anda.

Kapan harus menekan peringatan

Jangan menyembunyikan peringatan dari aturan ini. Jika Anda tidak ingin agar rakitan sesuai standar, terapkan atribut dan atur nilainya ke false.

Menyembunyikan peringatan

Jika Anda hanya ingin menyembunyikan satu pelanggaran, tambahkan arahan praprosedur ke file sumber Anda untuk dinonaktifkan lalu aktifkan kembali aturannya.

#pragma warning disable CA1014
// The code that's violating the rule is on this line.
#pragma warning restore CA1014

Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none dalam file konfigurasi.

[*.{cs,vb}]
dotnet_diagnostic.CA1014.severity = none

Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.

Contoh

Contoh berikut menunjukkan assembly yang memiliki atribut System.CLSCompliantAttribute yang diterapkan dan menyatakannya mematuhi CLS.

[assembly:CLSCompliant(true)]
namespace DesignLibrary {}
<assembly:CLSCompliant(true)>
Namespace DesignLibrary
End Namespace

Lihat juga