BC30909: '<membername>' não pode expor o tipo '<typename>' fora do projeto por meio <containertype> '<containertypename>'

Uma variável, parâmetro de procedimento ou retorno de função é exposta fora de seu contêiner, mas é declarada como um tipo que não deve ser exposto fora do contêiner.

O código esqueleto a seguir mostra uma situação que gera esse erro.

Private Class privateClass
End Class
Public Class mainClass
    Public exposedVar As New privateClass
End Class

Um tipo declaradoProtected, Friend, Protected Friend ou Private que se destina a ter acesso limitado fora do contexto de declaração. Usá-la como o tipo de dados de uma variável com acesso menos restrito eliminaria essa finalidade. No código esqueleto anterior, exposedVar é Public e exporia privateClass ao código que não deve ter acesso a ele.

ID do erro: BC30909

Para corrigir este erro

  • Altere o nível de acesso da variável, parâmetro de procedimento ou função para ser pelo menos tão restritivo quanto o nível de acesso de seu tipo de dados.

Confira também