Freigeben über


<Membername> ist nicht CLS-kompatibel und darf in einer CLS-kompatiblen Schnittstelle nicht verwendet werden

Aktualisiert: November 2007

Non-CLS-compliant <membername> is not allowed in a CLS-compliant interface

Eine Eigenschaft, eine Prozedur oder ein Ereignis in einer Schnittstelle ist als <CLSCompliant(True)> markiert, obwohl die Schnittstelle selbst als <CLSCompliant(False)> markiert ist oder nicht markiert ist.

Damit eine Schnittstelle mit der CLS (Common Language Specification) (CLS) kompatibel ist, müssen alle Member der Schnittstelle CLS-kompatibel sein.

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

So beheben Sie diesen Fehler

  • Wenn CLS-Kompatibilität erforderlich ist und Sie über die Quellcodeverwaltung der Schnittstelle verfügen, markieren Sie die Schnittstelle als <CLSCompliant(True)>, wenn alle Member der Schnittstelle CLS-kompatibel sind.

  • Wenn CLS-Kompatibilität erforderlich ist und Sie nicht über die Quellcodeverwaltung der Schnittstelle verfügen oder wenn die Schnittstelle nicht die Kompatibilitätsvoraussetzungen erfüllt, definieren Sie diesen Member in einer anderen Schnittstelle.

  • Wenn dieser Member in der aktuellen Schnittstelle verbleiben muss, entfernen Sie das CLSCompliantAttribute aus der Definition des Members, oder markieren Sie ihn als <CLSCompliant(False)>.

Siehe auch

Konzepte

Schreiben von CLS-kompatiblem Code

Referenz

Interface-Anweisung (Visual Basic)