Partager via


La classe d'implémentation '<NomClasseSous-jacente>' pour l'interface '<NomInterface>' n'est pas accessible dans ce contexte, car elle est '<NiveauAccès>'

Mise à jour : novembre 2007

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

Une interface est déclarée avec CoClassAttribute qui spécifie une classe sous-jacente, mais cette classe a un niveau d'accès qui empêche le code d'utilisation d'y accéder.

L'application de CoClassAttribute à une interface associe une classe sous-jacente à l'interface. Cela permet au code de créer directement un objet à partir de l'interface à l'aide d'une clause New.

Si le code qui utilise la clause New n'a pas accès à la classe sous-jacente, par exemple si la classe a la valeur Private, le compilateur génère cette erreur.

ID d'erreur : BC31109

Pour corriger cette erreur

  1. Si vous disposez d'un contrôle de code source sur la classe sous-jacente, modifiez son niveau d'accès afin que le code d'utilisation puisse y accéder.

  2. Si, pour une raison quelconque, vous ne pouvez pas modifier le niveau d'accès de la classe sous-jacente, supprimez la clause New. Vous ne pouvez pas créer directement un objet à partir de cette interface.

Voir aussi

Concepts

Niveaux d'accès dans Visual Basic

Référence

CoClassAttribute

New (Visual Basic)