Implementar a classe '<underlyingclassname>' para a interface '<interfacename>' não é acessível neste contexto porque ela é '<accesslevel>'

Uma interface é declarada com o CoClassAttribute especificando uma classe subjacente, mas essa classe tem um nível de acesso que impede que o código em uso a acesse.

Aplicar o CoClassAttribute a uma interface associa uma classe subjacente à interface. Isso permite que o código crie um objeto diretamente da interface usando uma cláusula New.

Se o código que usa a cláusula New não tiver acesso à classe subjacente, por exemplo, se a classe for Private, o compilador vai gerar esse erro.

ID do erro: BC31109

Para corrigir este erro

  1. Se você tiver controle do código-fonte sobre a classe subjacente, ajuste o nível de acesso para que o código em uso possa acessá-lo.

  2. Se por algum motivo você não puder alterar o nível de acesso da classe subjacente, remova a cláusulaNew. Você não pode criar um objeto diretamente dessa interface.

Confira também