Bagikan melalui


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

Lihat juga