Typ <typename1> kann nicht als CLS-kompatibel gekennzeichnet werden, da der enthaltende Typ <typename2> nicht CLS-kompatibel ist

Eine Klasse oder Schnittstelle wird als <CLSCompliant(True)> gekennzeichnet, wenn sie in einem Typ geschachtelt ist, der als <CLSCompliant(False)> oder gar nicht gekennzeichnet ist.

Damit eine Klasse oder Schnittstelle mit Sprachunabhängigkeit und sprachunabhängigen Komponenten (CLS) kompatibel ist, muss ihre gesamte Containmenthierarchie kompatibel sein. Das bedeutet, dass jeder Typ, in dem sie geschachtelt ist, kompatibel sein muss.

Wenn Sie das CLSCompliantAttribute auf ein Programmierelement anwenden, legen Sie den isCompliant -Parameter des Attributs auf True oder False fest, um die Kompatibilität bzw. Nichtkompatibilität anzugeben. Es gibt keinen Standardwert für diesen Parameter, und Sie müssen einen Wert angeben.

Wenn Sie das CLSCompliantAttribute nicht auf ein Element anwenden, wird dieses als nicht kompatibel betrachtet.

Standardmäßig ist diese Meldung eine Warnung. Informationen zum Ausblenden von Warnungen oder zum Behandeln von Warnungen als Fehler finden Sie unter Configuring Warnings in Visual Basic.

Fehler-ID: BC40030

So beheben Sie diesen Fehler

  • Wenn die CLS-Kompatibilität erforderlich ist, definieren Sie diesen Typ in einer anderen Kapselungshierarchie.

  • Wenn dieser Typ in der aktuellen Kapselungshierarchie verbleiben muss, entfernen Sie das CLSCompliantAttribute aus seiner Definition, oder kennzeichnen Sie ihn als <CLSCompliant(False)>.