Pregunta

Si tengo un proyecto y me marca como

<Assembly: CLSCompliant(True)> 

¿Es necesario poner CLSCompliant(True) antes de cada clase en el proyecto, o son todos por defecto en CLSCompliant?

¿Fue útil?

Solución

Agregar el atributo CLSCompliant en el plano de montaje no cambia las clases de todos modos, por lo que no make las clases CLS compatible. Lo que hace es hacer que el compilador para levantar cualquier cosa que no es compatible como un error. Sigue siendo su responsabilidad de hacer realidad de que las clases no se rompen las reglas.

Dicho esto, sin embargo, sí lo hace el filtro hacia abajo y afecta a todas las clases en el montaje sin la necesidad de añadir nuevo para cada clase. Desde aquí :

  

Si no hay ningún atributo CLS se aplica a una   tipo, ese tipo se supone que tiene la   mismo cumplimiento CLS como el conjunto en   que se define el tipo.

Este artículo es también una buena visión general bastante sobre cómo funciona, lo que tiene que hacer, y por qué es posible que desee hacerlo.

Otros consejos

Lo que sé de CLSCompliant es, por defecto, su montaje no es compatible. En mi opinión, no todos los proyectos tienen que ser CLSCompliant. Proyectos que son herramientas o bibliotecas, que van a ser utilizados por otras aplicaciones deben CLSCompliant. Aunque la construcción de herramientas de Visual StudioN para Windows Live, tuvimos que asegurarnos de que nuestro código no dio ningún error CLSCompliant o advertencias.

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