Pregunta

Tengo un par de advertencias molestas del compilador para una aplicación que porté desde VB6 hace un tiempo con respecto al cumplimiento de CLS, que incluye:

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

A pesar de esto, mi aplicación parece funcionar bien desde COM y clientes administrados. He visto varios artículos que describen qué hacer para hacer que el código sea compatible con CLS y probablemente seguiré adelante y lo haré de todos modos para deshacerme de las advertencias molestas, pero tengo curiosidad por saber cuáles son los inconvenientes del código no compatible con CLS. ¿condiciones? ¿Qué limitaciones impone esto que aún no he descubierto?

¿Fue útil?

Solución

Básicamente, su clase puede no ser accesible (o puede actuar de manera extraña, como grandes números positivos que se tratan como negativos), cuando se usa 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 comienza con un guión bajo. C # lo permite, por lo que está seguro allí, pero para otros idiomas, '' _AnIdentifier '' puede estar oculto o tener un nombre generado por el sistema.

Otros consejos

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top