klasy bazowe dla strony i UserControl:Jak utworzyć klasę podstawową dla Kontrolki strony i użytkownika?
public class MyWebPage : System.Web.UI.Page { }
public class MyUserControl : System.Web.UI.UserControl { }
Helper, że któryś z nich może używać:
void SetSessionValue<T>(string key, T value) { Session[key] = value; }
Jak mogę osiągnąć coś jak poniżej?
public class WebObject // can't inherit from both Page and UserControl {
protected void SetSessionValue<T>(string key, T value) {
Session[key] = value;
}
}
public class MyWebPage : WebObject { }
public class MyUserControl : WebObject { }
Aktualizacja: Podekscytowałem się po raz drugi, mając nadzieję, że uda mi się go rozwiązać w ten sposób, ale niestety nie kompiluje.
public class WebObject<T> : T
{
}
public class MyWebPage : WebObject<System.Web.UI.Page>
{
}
Ile takich metod będzie można i ile kodu będzie w każdej metodzie? Dlaczego po prostu nie powielać kodu?Ta jedna linijka wydaje się być krótka, aby się tym martwić. Ponadto, jeśli 'Strona' i' UserControl' mają jakąś wspólną klasę podstawową, możesz po prostu utworzyć metodę rozszerzenia tego typu. Na przykład. na 'System.Web.UI.Control' lub' System.Web.UI.TemplateControl' - możesz to zrobić tylko, jeśli nie potrzebujesz stanu ze swojej niestandardowej klasy bazowej. –