C # - выставить статический класс внутри нормального класса? - PullRequest
2 голосов
/ 14 ноября 2009

Вот простой пример:

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

Можно ли выставить статический класс?

Ответы [ 3 ]

5 голосов
/ 14 ноября 2009

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

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

using System.Web.Security;

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

1 голос
/ 14 ноября 2009

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

0 голосов
/ 14 ноября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...