Tipo '<typename1>' não pode ser marcado com CLS porque seu tipo recipiente '<typename2>' não é compatível com CLS
Uma classe ou interface está marcado sistema autônomo <CLSCompliant(True)> Quando estiver aninhado em um tipo que está marcado sistema autônomo <CLSCompliant(False)> ou não está marcado.
Para uma classe ou interface para ser compatível com o CLS (Common Language Specification) (CLS), sua hierarquia de confinamento inteiro deve ser compatível. Isso significa que todos os tipos no qual está aninhado devem ser compatível.
Quando você aplica o CLSCompliantAttribute a um elemento de programação, você define o parâmetro isCompliant do atributo para True ou False para indicar compatibilidade ou incompatibilidade.Não há padrão para este parâmetro, e você deve fornecer um valor.
Se você não aplicar o CLSCompliantAttribute a um elemento, ele vai ser considerado incompatível.
Por padrão, essa é uma mensagem de aviso.Para informações sobre como ocultar avisos ou tratar avisos como erros, consulte Configurando Avisos (Warnings) no Visual Basic.
ID de erro: BC40030
Para corrigir este erro
Se você precisar de compatibilidade com CLS, defina este tipo de dentro de uma hierarquia de confinamento diferentes.
Se você exigir que esse tipo permanecem dentro da sua hierarquia de contenção corrente, remova o CLSCompliantAttribute de sua definição ou marcá-la sistema autônomo <CLSCompliant(False)>.