我在尝试在页面后面的代码上声明一个Public类时,在.net中收到错误。
Partial Class _Default
Inherits System.Web.UI.Page
Public someVariable as integer
Public someClass as className
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load [...]
我得到的错误是BC30508: 'someClass' cannot expose type 'className' in namespace '<Default>' through class '_Default'.
这里的目标是访问aspx页面上的脚本块中的类属性,如<%=someClass.classProperty%>
我不确定我是否正在尝试正确的方法(我已经尝试了几种方式来宣布公共课)或者甚至可以做到这一点......感谢您查看它。
答案 0 :(得分:8)
检查className
类型的保护级别。你忘了将它标记为公开吗?
该错误消息表示您拥有限制访问权限,并且您尝试以允许在限制之外进行访问的方式使用它。例如,如果您的className
类型为internal
或private
子类_Default
,但您添加该类型的公共成员作为属性,则程序集将公开键入作为其接口的一部分,否则无法使用。
答案 1 :(得分:1)
几乎可以肯定是你的“className”类的声明。尝试将其设置为公开。
答案 2 :(得分:0)
检查_Default类的保护级别。它可能不会设置为部分类,这将导致您看到的保护级别问题。