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 8 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

Viz také