Mon projet utilise une page de base pour conserver la fonctionnalité de la page courante. Cela a fonctionné jusqu'à ce que la page de base devienne énorme, alors j'ai essayé de factoriser la page de base en plusieurs classes. Ensuite, je me suis aperçu que je ne peux pas écrireComment simuler l'héritage multiple pour les pages de base ASP.NET?
public MyPage : SecurePage, PageWithGridViewSorting, PageWithSessionWarning
donné quelque chose comme:
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
}
Quel chemin dois-je prendre cela? Et je pense que le fait que ce soit la page ASP.NET est pertinent car c'est une classe qui est construite par le framework, pas moi. Ma première pensée a été de faire un override pour le constructeur et passer dans les fonctionnalités et cela ne fonctionnera pas avec System.Web.UI.Page.
L'une de ces fonctionnalités est-elle accessible à partir d'autres classes? Si c'est le cas, vous instanciez simplement les objets appropriés OU vous leur donnez des classes statiques et appelez des méthodes de cette façon. – Powerlord
@RBembros Généralement, ce code se connecte à Page_Load, OnInit, etc., c'est donc le pipeline ASP.NET qui appelle le code, via les événements et le cycle de vie de la page. Point bien pris pour les méthodes statiques, je suis d'accord que ceux-ci n'ont pas besoin d'être dans une classe de base. – MatthewMartin