'<membername>' cannot expose type '<typename>' outside the project through <containertype> '<containertypename>'
Updated: July 20, 2015
A variable, procedure parameter, or function return is exposed outside its container, but it is declared as a type that must not be exposed outside the container.
The following skeleton code shows a situation that generates this error.
Private Class privateClass End Class Public Class mainClass Public exposedVar As New privateClass End Class
A type that is declared
Protected Friend, or
Private is intended to have limited access outside its declaration context. Using it as the data type of a variable with less restricted access would defeat this purpose. In the preceding skeleton code,
Public and would expose
privateClass to code that should not have access to it.
Error ID: BC30909
- Change the access level of the variable, procedure parameter, or function return to be at least as restrictive as the access level of its data type.