2008-12-02 9 views
13

Tengo un par de advertencias del compilador molestas para una aplicación que me portado desde VB6 un tiempo atrás con respecto CLS-Cumplimiento incluyendo:¿Cuáles son las consecuencias del código que NO cumple con CLS en .NET?

Name '_AnIdentifier' is not CLS-Compliant. 
Type of parameter 'myType' is not CLS-Compliant. 

A pesar de esto, mi aplicación parece funcionar muy bien de COM y clientes administrados. He visto varios artículos que describen qué hacer para que el código cumpla con CLS y probablemente continuaré haciéndolo de todos modos para deshacerme de las persistentes advertencias, pero tengo curiosidad por saber cuáles son los inconvenientes del código que no cumple con CLS en la práctica. ¿condiciones? ¿Qué limitaciones es esta imposibilidad que aún no he descubierto?

Respuesta

10

Básicamente, es posible que su clase no sea accesible (o que pueda actuar de forma extraña, como que los números positivos grandes se consideren negativos), cuando se utiliza con algunos lenguajes .NET. No puedo decir qué idiomas podrían ser.

Por ejemplo, no creo que se requiera un idioma para reconocer un identificador que comience con un guión bajo. C# lo permite, por lo que está a salvo allí, pero para otros idiomas, "_AnIdentifier" puede estar oculto o tener un nombre generado por el sistema.

4

He tenido problemas con las herramientas de ofuscación que generan código ofuscado incorrecto cuando el código que no cumple con CLS está ofuscado.

Cuestiones relacionadas