CA1014: Contrassegnare gli assembly con CLSCompliantAttribute

Proprietà valore
ID regola CA1014
Titolo Contrassegnare gli assembly con CLSCompliantAttribute
Categoria Progettazione
Correzione che causa un'interruzione o un'interruzione Nessuna interruzione
Abilitato per impostazione predefinita in .NET 8 No

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à a 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 escludere un avviso da questa regola. Se non si vuole che l'assembly sia conforme, applicare l'attributo e impostarne il valore 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