No se puede obtener acceso a la clase de implementación '<underlyingclassname>' de la interfaz '<interfacename>' en este contexto porque es '<accesslevel>'

Se declara una interfaz con el CoClassAttribute que especifica una clase subyacente, pero esa clase tiene un nivel de acceso que impide al código tener acceso a ella.

Al aplicar el CoClassAttribute a una interfaz, se asocia una clase subyacente a la interfaz. Esto permite que el código cree un objeto directamente desde la interfaz con una cláusula New .

Si el código que usa la cláusula New no tiene acceso a la clase subyacente, por ejemplo, si la clase es Private, el compilador genera este error.

Identificador de error: BC31109

Para corregir este error

  1. Si tiene el control de código fuente sobre la clase subyacente, ajuste su nivel de acceso para que el código en uso pueda obtener acceso a esta.

  2. Si por alguna razón no puede cambiar el nivel de acceso de la clase subyacente, quite la cláusula New . No se puede crear un objeto directamente desde esta interfaz.

Consulte también