2009-11-13 4 views
2

Вот простой пример:C# - Открыть статический класс внутри обычного класса?

ASP.NET предоставляет несколько статических классов, основанных на поставщике членства. Мы навсегда используем их на наших страницах. Нам также необходимо расширить базу System.Web.UI.Page класс. Итак, мы подумали, что мы должны разоблачить различные статические классы в нашей реализации OurCompany.Web.UI.Page.

Мы не можем использовать переменную:

System.Web.Security.Roles myRoles; 

Мы не можем подвергать его как свойство:

internal System.Web.Security.Roles Roles { get { return System.Web.Security.Roles; } } 

Мы не можем унаследовать его:

internal class Roles : System.Web.Security.Roles 

Можно ли подвергать статический класс?

ответ

5

Что вы подразумеваете под «разоблачением»? Статические классы уже доступны тем, кто хочет их использовать.

Похоже, вы пытаетесь извлечь уроки из класса или использовать свойство, чтобы не печатать столько же - это плохая идея. Наследование по специализации, чтобы не сделать имена легче достичь :) Просто используя директиву:

using System.Web.Security; 

, а затем вы можете использовать Roles.XXX везде, где вы хотите в этом коде.

+0

Yah. Думал, что это сойдет на что-то подобное. Благодаря! –

1

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

0

Вы пытаетесь расширить System.Web.UI.Page с помощью собственных дополнительных методов/и т. Д.? Если да, почему бы не использовать наследование и не наследовать страницу из System.Web.UI.Page. Затем все, что вам нужно сделать, это изменить ваши страницы ASPX, чтобы использовать вашу страницу вместо значения по умолчанию. Если это то, что вы хотите, check out this article для достойного примера.

+0

Уже сделал это. Глобальный поиск/замена по всему проекту. Перекомпилирован и запущен без ошибок. К сожалению, это не касается моего вопроса. –

Смежные вопросы