Domanda

Se ho un progetto e ho segnare come

<Assembly: CLSCompliant(True)> 

Devo mettere CLSCompliant(True) prima di tutti di classe nel progetto, o sono tutti in default a CLSCompliant?

È stato utile?

Soluzione

Aggiungendo l'attributo CLSCompliant a livello di assieme non cambia le classi comunque, quindi non make le classi CLS compliant. Ciò che fa è quello di forzare il compilatore per raccogliere tutto ciò che non è conforme come un errore. E 'ancora la vostra responsabilità di fare in realtà che le classi non si rompono le regole.

Detto questo, però, sì, lo fa filtrare verso il basso e influenzano tutte le classi in assemblea, senza la necessità di aggiungere di nuovo per ogni classe. Da qui :

  

Se nessun attributo CLS viene applicato a un   tipo, che tipo è ritenuto sempre   stessa conformità CLS come il gruppo in   cui è definito il tipo.

Questo articolo è anche una una bella panoramica abbastanza su come funziona, che cosa è necessario fare, e perché si consiglia di farlo.

Altri suggerimenti

Quello che so di CLSCompliant è, per impostazione predefinita l'assembly non è compatibile. A mio parere, non tutti i progetti devono essere CLSCompliant. I progetti che sono strumenti o librerie, che stanno per essere utilizzati da altre applicazioni dovrebbero essere CLSCompliant. Mentre la costruzione Studion Visual Tools per Windows Live, abbiamo dovuto assicurarsi che il nostro codice non ha dato errori CLSCompliant o avvisi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top