Auf die implementierende Klasse „<underlyingclassname>“ für die Schnittstelle „<interfacename>“ kann in diesem Kontext nicht zugegriffen werden, weil es sich um „<accesslevel>“ handelt.

Eine Schnittstelle wird mit dem CoClassAttribute deklariert, das eine zugrunde liegende Klasse angibt. Diese Klasse verfügt aber über eine Zugriffsebene, die verhindert, dass der verwendende Code darauf zugreifen kann.

Wenn das CoClassAttribute auf eine Schnittstelle angewendet wird, wird eine zugrunde liegenden Klasse der Schnittstelle zugeordnet. Dies ermöglicht es dem Code, ein Objekt direkt aus der Schnittstelle mithilfe einer New -Klausel zu erstellen.

Wenn der Code, der die New -Klausel verwendet, keinen Zugriff auf die zugrunde liegende Klasse besitzt (weil die Klasse z. B. Privateist), generiert der Compiler diesen Fehler.

Fehler-ID: BC31109

So beheben Sie diesen Fehler

  1. Wenn Sie über Quellcodeverwaltung für die zugrunde liegende Klasse verfügen, passen sie ihre Zugriffsebene einfach so an, dass der verwendende Code darauf zugreifen kann.

  2. Wenn Sie die Zugriffsebene der zugrunde liegenden Klasse aus bestimmten Gründen nicht ändern können, entfernen Sie die New -Klausel. Ein Objekt kann nicht direkt aus dieser Schnittstelle erstellt werden.

Siehe auch