Использование класса как публичной переменной в asp.net - PullRequest
3 голосов
/ 13 апреля 2009

Я получаю сообщение об ошибке в .net при попытке объявить класс Public в моем коде за страницей.

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%>

Я не уверен, что я пробую правильные методы (я пробовал несколько способов объявить открытый класс) или это можно сделать ... Спасибо, что взглянули на это.

Ответы [ 3 ]

8 голосов
/ 13 апреля 2009

Проверьте уровень защиты вашего типа className. Вы забыли отметить его публичным?

Это сообщение об ошибке означает, что у вас есть что-то с ограниченным доступом, и вы пытаетесь использовать его таким образом, чтобы разрешить доступ за пределами ограничений. Например, если ваш тип className равен internal или private дочерний класс _Default, но вы добавляете открытый член этого типа в качестве свойства, ваша сборка будет отображать тип как часть своего интерфейса, в противном случае непригодный для использования.

1 голос
/ 13 апреля 2009

Это почти наверняка объявление вашего класса "className". Попробуйте установить его для общего доступа.

0 голосов
/ 13 апреля 2009

Проверьте уровень защиты класса _Default. Возможно, он не настроен как частичный класс, и это приведет к проблеме уровня защиты, которую вы видите.

...