Поделиться через


Реализация класса <имяКласса> для интерфейса <имяИнтерфейса> недоступна в данном контексте, поскольку он имеет уровень доступа <уровеньДоступа>

Обновлен: Ноябрь 2007

Implementing class '<underlyingclassname>' for interface '<interfacename>' is not accessible in this context because it is '<accesslevel>'

Интерфейс, объявленный с CoClassAttribute, указывающим базовый класс, но класс имеет уровень доступа, запрещающий доступ к нему для кода.

Применение CoClassAttribute к интерфейсу связывает базовый класс и интерфейс. Это позволяет коду создавать объект непосредственно из интерфейса с помощью условия New.

Если код, использующий условие New, не имеет доступа к базовому классу, (например, если класс является Private), то компилятор вызовет эту ошибку.

Идентификатор ошибки: BC31109

Чтобы исправить данную ошибку

  1. При наличии возможности управления версиями для базового класса следует изменить уровень доступа к нему таким образом, чтобы он был доступен для кода.

  2. Если по какой-либо причине не удается изменить уровень доступа для базового класса, следует удалить условие New. Нельзя создать объект непосредственно из этого интерфейса.

См. также

Основные понятия

Уровни доступа в Visual Basic

Ссылки

CoClassAttribute

New (Visual Basic)