2010-10-25 11 views
31

Ho avvertimenti da parte di uno dei miei corsi. In realtà la classe è molto semplice, solo un erede del mio tipo di base generico. Inoltre ho altri eredi da quella classe generica attraverso la soluzione, e non ci sono tali avvertimenti.Il tipo base non è conforme a CLS, quali sono le ragioni di questo avviso?

Quale potrebbe essere il motivo di ciò? Il compilatore non fornisce alcun indizio sul motivo per cui il tipo di base non è conforme a CLS

+0

Verificare che nessun metodo o proprietà visibili all'esterno della classe abbiano la stessa ortografia con il solo caso per separarli, ad esempio: Connessione e connessione. VB.NET non distingue tra caso e tali proprietà sarebbero quindi ambigue. –

risposta

53

Probabilmente hai [assembly:CLSCompliant(true)] da qualche parte in quel progetto specifico. Ciò fa sì che il compilatore verifichi che tutti i tipi siano compatibili con CLS. È possibile sovrascriverlo per un tipo o metodo o qualcosa con [CLSCompliant(false)].

+4

In realtà si è scoperto che non avevo quell'attributo in un altro assembly. Grazie! – DarkDeny

+0

Prego. –

3

Suppongo che tu abbia un tipo derivato contrassegnato come CLSCompliant ma la base non lo è.

Writing CLS Compliant Code L'esempio canonico usa un UInt32 che non fa parte del Language Specification (CLS) comune - quindi è necessario utilizzare Int64 per essere compatibile con CLS o rimuovere l'attributo (dichiararti non compatibile con CLS).

È necessario più codice per identificare la riga di codice incriminata. Maggiori informazioni su the error che stai ottenendo.