La classe di implementazione '<underlyingclassname>' per l'interfaccia '<interfacename>' non è accessibile in questo contesto perché è '<accesslevel>'

Un'interfaccia viene dichiarata con l'attributo CoClassAttribute che specifica una classe sottostante, ma tale classe ha un livello di accesso che impedisce al codice in uso di accedervi.

L'applicazione dell'attributo CoClassAttribute a un'interfaccia associa una classe sottostante all'interfaccia. Ciò consente al codice di creare un oggetto direttamente dall'interfaccia usando una clausola New .

Se il codice che usa la clausola New non ha accesso alla classe sottostante, ad esempio se la classe è Private, il compilatore genera questo errore.

ID errore: BC31109

Per correggere l'errore

  1. Se si ha il controllo del codice sorgente sulla classe sottostante, modificare il livello di accesso in modo che il codice di uso possa accedervi.

  2. Se per qualsiasi motivo non è possibile modificare il livello di accesso della classe sottostante, rimuovere la clausola New . Non è possibile creare un oggetto direttamente da questa interfaccia.

Vedi anche