La clase '<nombre de clase>' no es compatible con CLS porque la interfaz '<nombre de interfaz>' que implementa tampoco lo es

Una clase o interfaz marcada como <CLSCompliant(True)> cuando se deriva de o implementa un tipo marcado como <CLSCompliant(False)> o que no está marcado.

Para que una clase o interfaz sea compatible con la Common Language Specification (CLS), su jerarquía de herencia completa debe ser compatible. Es decir, cada tipo del que hereda, directamente o indirectamente, debe ser compatible. De forma similar, si una clase implementa una o más interfaces, todas deben ser compatibles a lo largo de toda su jerarquía de herencia.

Al aplicar CLSCompliantAttribute a un elemento de programación, se establece el parámetro isCompliant del atributo en True o False para indicar compatibilidad o incompatibilidad. No hay ningún valor predeterminado para este parámetro por lo que debe proporcionar uno.

Si no se aplica CLSCompliantAttribute a un elemento, se considerará que no es compatible.

De forma predeterminada, este mensaje es una advertencia. Para obtener más información sobre cómo ocultar las advertencias o tratar las advertencias como errores, consulte Configurar advertencias en Visual Basic.

Identificador de error: BC40029

Para corregir este error

  • Si requiere la compatibilidad con CLS, defina este tipo dentro de una jerarquía de herencia diferente o de un esquema de implementación distinto.

  • Si necesita que este tipo permanezca dentro de su jerarquía de herencia o esquema de implementación actual, quite CLSCompliantAttribute de su definición o márquelo como <CLSCompliant(False)>.

Vea también

Conceptos

Escribir código conforme con CLS