Compartilhar via


'<classname>' não está em conformidade com CLS porque deriva de '<baseclassname>', que não está em conformidade com CLS

Uma classe ou interface é marcada como <CLSCompliant(True)> quando deriva ou implementa um tipo marcado como <CLSCompliant(False)> ou não é marcada.

Para que uma classe ou interface esteja em conformidade com o CLS (Independência de Linguagem e Componentes Independente de Linguagem), toda a hierarquia de herança precisa estar em conformidade. Isso significa que todos os tipos dos quais herdam, direta ou indiretamente, precisam estar em conformidade. Da mesma maneira, se uma classe implementar uma ou mais interfaces, todas elas deverão estar em conformidade em todas as hierarquias de herança.

Quando você aplica o CLSCompliantAttribute a um elemento de programação, define o parâmetro isCompliant do atributo como True ou False para indicar conformidade ou não conformidade. Não há nenhum padrão para esse parâmetro e você precisa fornecer um valor.

Se você não aplicar o CLSCompliantAttribute a um elemento, ele será considerado que não está em conformidade.

Por padrão, esta mensagem é um aviso. Para obter mais informações sobre como ocultar avisos ou tratar avisos como erros, consulte Configurar Avisos no Visual Basic.

ID do Erro: BC40026

Para corrigir este erro

  • Se você precisar de conformidade com CLS, defina esse tipo dentro de uma hierarquia de herança ou um esquema de implementação diferente.

  • Se você exigir que esse tipo permaneça dentro de sua hierarquia de herança ou esquema de implementação atual, remova o CLSCompliantAttribute da definição ou marque-o como <CLSCompliant(False)>.