CA1014: Označte sestavení pomocí atributu CLSCompliantAttribute
Vlastnost | Hodnota |
---|---|
ID pravidla | CA1014 |
Název | Označte sestavení pomocí CLSCompliantAttribute |
Kategorie | Návrh |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Povoleno ve výchozím nastavení v .NET 9 | No |
Příčina
Sestavení nemá System.CLSCompliantAttribute atribut použitý na něj.
Popis pravidla
Specifikace Common Language Specification (CLS) definuje omezení názvů, datové typy a pravidla, která musí sestavení dodržovat, pokud budou použita napříč programovacími jazyky. Dobrý návrh určuje, že všechna sestavení explicitně označují dodržování předpisů CLS s CLSCompliantAttribute. Pokud atribut není v sestavení, sestavení nedodržuje předpisy.
Sestavení kompatibilní se specifikací CLS může obsahovat typy nebo členy typu, které nedodržují předpisy.
Jak opravit porušení
Chcete-li opravit porušení tohoto pravidla, přidejte atribut do sestavení. Místo označení celého sestavení jako nekompatibilního byste měli určit, který typ nebo členové typu nevyhovují, a označit tyto prvky jako takové. Pokud je to možné, měli byste poskytnout alternativu kompatibilní se specifikací CLS pro členy nesplňující požadavky, aby nejširší možná cílová skupina měla přístup ke všem funkcím sestavení.
Kdy potlačit upozornění
Nepotlačujte upozornění na toto pravidlo. Pokud nechcete, aby sestavení vyhovovalo předpisům, použijte atribut a nastavte jeho hodnotu na false
.
Potlačení upozornění
Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable CA1014
// The code that's violating the rule is on this line.
#pragma warning restore CA1014
Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none
konfiguračním souboru.
[*.{cs,vb}]
dotnet_diagnostic.CA1014.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.
Příklad
Následující příklad ukazuje sestavení s použitým System.CLSCompliantAttribute atributem, který deklaruje, že je kompatibilní se specifikací CLS.
[assembly:CLSCompliant(true)]
namespace DesignLibrary {}
<assembly:CLSCompliant(true)>
Namespace DesignLibrary
End Namespace