Condividi tramite


CA1014: Contrassegnare gli assembly con CLSCompliantAttribute

Proprietà valore
ID regola CA1014
Title Contrassegnare gli assembly con CLSCompliantAttribute
Categoria Progettazione
La correzione causa un'interruzione o meno Non rompente
Abilitato per impostazione predefinita in .NET 10 No
Linguaggi applicabili C# e Visual Basic

Causa

A un assembly non è applicato l'attributo System.CLSCompliantAttribute .

Descrizione regola

In Common Language Specification (CLS) vengono definite limitazioni di denominazione, tipi di dati e regole che gli assembly devono rispettare per poter essere utilizzati tra diversi linguaggi di programmazione. Una buona progettazione impone che tutti gli assembly indichino in modo esplicito la conformità al CLS con CLSCompliantAttribute. Se l'attributo non è presente in un assembly, l'assembly non è conforme.

È possibile che un assembly conforme a CLS contenga tipi o membri di tipo non conformi.

Come correggere le violazioni

Per correggere una violazione di questa regola, aggiungere l'attributo all'assembly. Invece di contrassegnare l'intero assembly come non conforme, è necessario determinare il tipo o i membri del tipo non conformi e contrassegnare tali elementi come tali. Se possibile, è necessario fornire un'alternativa conforme a CLS per i membri non conformi in modo che il pubblico più ampio possibile possa accedere a tutte le funzionalità dell'assembly.

Quando eliminare gli avvisi

Non sopprimere un avviso da questa regola. Se non desideri che l'assembly sia conforme, applica l'attributo e impostalo su false.

Eliminare un avviso

Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.

#pragma warning disable CA1014
// The code that's violating the rule is on this line.
#pragma warning restore CA1014

Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none su nel file di configurazione.

[*.{cs,vb}]
dotnet_diagnostic.CA1014.severity = none

Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.

Esempio

Nell'esempio seguente viene illustrato un assembly con l'attributo System.CLSCompliantAttribute applicato che lo dichiara conforme a CLS.

[assembly:CLSCompliant(true)]
namespace DesignLibrary {}
<assembly:CLSCompliant(true)>
Namespace DesignLibrary
End Namespace

Vedi anche