Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| Proprietà | valore |
|---|---|
| ID regola | CA1014 |
| Title | Contrassegnare gli assembly con CLSCompliantAttribute |
| Categoria | Progettazione |
| La correzione causa un'interruzione o meno | Non causa un'interruzione |
| Abilitato per impostazione predefinita in .NET 10 | 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