CA1014: Tandai rakitan dengan CLSCompliantAttribute
Properti | Nilai |
---|---|
ID Aturan | CA1014 |
Judul | Menandai rakitan dengan CLSCompliantAttribute |
Golongan | Desain |
Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
Diaktifkan secara default di .NET 9 | No |
Penyebab
Rakitan tidak memiliki System.CLSCompliantAttribute atribut 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 rakitan 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 rakitan. 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 rakitan sesuai, 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 rakitan yang memiliki System.CLSCompliantAttribute atribut yang diterapkan yang menyatakannya sesuai CLS.
[assembly:CLSCompliant(true)]
namespace DesignLibrary {}
<assembly:CLSCompliant(true)>
Namespace DesignLibrary
End Namespace