Il tipo '<typename1>' non può essere contrassegnato come conforme a CLS perché il tipo che lo contiene '<typename2>' non è conforme a CLS

Una classe o un'interfaccia è contrassegnata come <CLSCompliant(True)> quando è annidata in un tipo contrassegnato come <CLSCompliant(False)> oppure non contrassegnato.

Affinché una classe o un'interfaccia sia conforme all'indipendenza del linguaggio e ai componenti indipendenti dal linguaggio (CLS), l'intera gerarchia di contenimento deve essere conforme. Di conseguenza anche tutti i tipi in cui la classe o l'interfaccia è annidata devono essere conformi.

Quando CLSCompliantAttribute viene applicato a un elemento di programmazione, il parametro isCompliant dell'attributo viene impostato su True o False per indicare la conformità o la non conformità. L'impostazione predefinita per questo parametro non è disponibile, quindi è necessario specificare un valore.

Se a un elemento non viene applicato CLSCompliantAttribute , l'elemento non sarà considerato conforme.

Per impostazione predefinita, si tratta di un messaggio di avviso. Per informazioni su come nascondere gli avvisi o considerarli come errori, vedere Configuring Warnings in Visual Basic.

ID errore: BC40030

Per correggere l'errore

  • Se è necessaria la conformità CLS, definire questo tipo in un'altra gerarchia di contenimento.

  • Se questo tipo deve rimanere nella gerarchia di contenimento corrente, rimuovere CLSCompliantAttribute dalla definizione o contrassegnarlo come <CLSCompliant(False)>.