В моем проекте используется базовая страница для хранения общих функций страницы. Он работал до тех пор, пока базовая страница не стала огромной, поэтому я попытался разбить базовую страницу на несколько классов. Тогда я понял, что я не могу писатьКак имитировать множественное наследование для базовых страниц ASP.NET?
public MyPage : SecurePage, PageWithGridViewSorting, PageWithSessionWarning
дал что-то вроде:
public class SecurePage : RadAjaxPage
{
// Add session id to ViewStateUserKey
}
public class PageWithGridViewSorting : RadAjaxPage
{
// add sorting to all grids on page
}
public class PageWithSessionWarning : RadAjaxPage
{
// inject javascript to warn user of impending session end
}
Какой путь я должен принять это? И я думаю, что тот факт, что это страница ASP.NET, уместен, потому что это класс, который создается структурой, а не мной. Моя первая мысль заключалась в том, чтобы сделать переопределение для конструктора и передать функции и не работать с System.Web.UI.Page.
Есть ли какие-либо из этих функциональных возможностей, которые вы могли бы назвать из других классов? Если это так, вы просто создаете экземпляры соответствующих объектов или делаете их статическими классами и вызываете их так. – Powerlord
@RBembros Обычно этот код подключается к Page_Load, OnInit и т. Д., Поэтому он представляет собой конвейер ASP.NET, который вызывает код, через события и жизненный цикл страницы. Точка хорошо взята для статических методов, я согласен, что они не должны быть в базовом классе. – MatthewMartin