CA1014: Szerelvények megjelölése a CLSCompliantAttribute használatával
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA1014 |
Cím | Szerelvények megjelölése a CLSCompliantAttribute használatával |
Kategória | Design |
A javítás kompatibilitástörő vagy nem törik | Nem törés |
Alapértelmezés szerint engedélyezve a .NET 8-ban | Nem |
Ok
A szerelvényre nincs alkalmazva az System.CLSCompliantAttribute attribútum.
Szabály leírása
A Common Language Specification (CLS) olyan elnevezési korlátozásokat, adattípusokat és szabályokat határoz meg, amelyeknek a szerelvényeknek meg kell felelniük, ha a programozási nyelvek között használják őket. A jó kialakítás azt diktálja, hogy minden szerelvények kifejezetten jelezzék a CLS-nek való megfelelést CLSCompliantAttribute. Ha az attribútum nem található egy szerelvényen, a szerelvény nem megfelelő.
A CLS-kompatibilis szerelvények olyan típusokat vagy típustagokat tartalmazhatnak, amelyek nem megfelelőek.
Szabálysértések kijavítása
A szabály megsértésének kijavításához adja hozzá az attribútumot a szerelvényhez. A teljes szerelvény nem megfelelőként való megjelölése helyett meg kell határoznia, hogy mely típus- vagy típustagok nem megfelelőek, és jelölje meg ezeket az elemeket. Ha lehetséges, cls-kompatibilis alternatívát kell biztosítania a nem megfelelő tagok számára, hogy a lehető legszélesebb közönség hozzáférjen a szerelvény összes funkciójához.
Mikor kell letiltani a figyelmeztetéseket?
Ne tiltsa el a szabály figyelmeztetését. Ha nem szeretné, hogy a szerelvény megfelelő legyen, alkalmazza az attribútumot, és állítsa az értékét a következőre false
: .
Figyelmeztetés mellőzése
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.
#pragma warning disable CA1014
// The code that's violating the rule is on this line.
#pragma warning restore CA1014
Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none
a konfigurációs fájlban.
[*.{cs,vb}]
dotnet_diagnostic.CA1014.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.
Példa
Az alábbi példa egy olyan szerelvényt mutat be, amely rendelkezik a System.CLSCompliantAttribute CLS-kompatibilisnek deklarált attribútummal.
[assembly:CLSCompliant(true)]
namespace DesignLibrary {}
<assembly:CLSCompliant(true)>
Namespace DesignLibrary
End Namespace