Хорошо, это немного абстрактно, но здесь идет:Как сделать поле глобальным для моего сайта?
Я создаю сайт, и я хочу иметь поле «foo», которое я могу получить с любой страницы сайта. Я решил, что лучший способ сделать это - создать подкласс страницы под названием «bar», добавить к нему защищенное поле «foo», а затем все мои веб-страницы не будут отображаться с «bar». Та-да. На каждой странице есть foo.
Но теперь я добавляю элементы управления на свои страницы, и я хочу, чтобы они имели доступ к «foo».
Ну, теперь foo не может быть защищен, поэтому он является общедоступным. Хорошо. Но как органы управления знают о «foo»? Я могу получить доступ к Foo делать что-то подобное в моей власти:
Foo foo = ((Bar)Page).foo;
Это работает, но кажется мне немного некрасиво. Мне бы очень хотелось просто использовать foo. Я полагаю, эй, возможно, я могу сделать тот же трюк с моими элементами управления, которые я сделал для страницы. Я создаю новый класс, «blargh», который наследуется от UserControl и захватывает foo там уродливым способом. Тогда у меня есть мои элементы управления, наследуемые от blargh. Ура!
Кроме этого не работает. Когда я запускаю проект, он жалуется на строку, пытающуюся получить доступ ((Bar) Page) .foo, потому что страница равно null. Зачем? Как страница может быть нулевой? Когда я смотрю на стек вызовов, я не получаю никакой помощи.
Есть ли простой, хорошо понятный способ сделать это? Я лаяю неправильное дерево?
Кто-то голосовал за этот вопрос? Мне было бы интересно узнать, почему, поэтому я мог бы исправить это, если это возможно. – Beska