Typ '<Typname1>' kann nicht als CLS-kompatibel markiert werden, da der enthaltende <Typname2>-Typ nicht CLS-kompatibel ist

Aktualisiert: November 2007

Type '<typename1>' cannot be marked CLS-compliant because its containing type '<typename2>' is not CLS-compliant

Eine Klasse oder Schnittstelle ist als <CLSCompliant(True)> markiert und in einem Typ geschachtelt, der als <CLSCompliant(False)> markiert oder nicht markiert ist.

Damit eine Klasse oder Schnittstelle mit der CLS (Common Language Specification) (CLS) kompatibel ist, muss ihre gesamte Kapselungshierarchie CLS-kompatibel sein. Das bedeutet, dass jeder Typ, in dem sie geschachtelt ist, kompatibel sein muss.

Wenn Sie CLSCompliantAttribute auf ein Programmierelement anwenden, legen Sie den isCompliant-Parameter des Attributs auf True oder auf 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 CLSCompliantAttribute nicht auf ein Element anwenden, wird dieses als nicht kompatibel betrachtet.

Standardmäßig ist diese Meldung eine Warnung. Informationen über das Ausblenden von Warnungen bzw. über die Behandlung von Warnungen als Fehler finden Sie unter Konfigurieren von Warnungen in Visual Basic.

Fehler-ID: BC40030

So beheben Sie diesen Fehler

  • Wenn 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 der Definition des Typs, oder markieren Sie ihn als <CLSCompliant(False)>.

Siehe auch

Konzepte

Schreiben von CLS-kompatiblem Code