'<classname>' non è conforme a CLS perché deriva da '<baseclassname>', che non è conforme a CLS

Una classe o interfaccia è contrassegnata come <CLSCompliant(True)> quando deriva da o implementa un tipo contrassegnato come <CLSCompliant(False)> o non è contrassegnata.

Affinché una classe o un'interfaccia sia conforme all'indipendenza del linguaggio e ai componenti indipendenti dal linguaggio (CLS), l'intera gerarchia di ereditarietà deve essere conforme. Ciò significa che ogni tipo da cui eredita, direttamente o indirettamente, deve essere conforme. Analogamente, se una classe implementa una o più interfacce, esse devono essere tutte conformi nelle relative gerarchie di ereditarietà.

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: BC40026

Per correggere l'errore

  • Se è necessaria la conformità a CLS, definire il tipo all'interno di uno schema di implementazione o una gerarchia di ereditarietà diversi.

  • Se è necessario che questo tipo resti all'interno dello schema di implementazione o della gerarchia di ereditarietà corrente, rimuovere CLSCompliantAttribute dalla relativa definizione o contrassegnarlo come <CLSCompliant(False)>.