基類頁和用戶控件:如何爲Page和UserControl創建一個基類?
public class MyWebPage : System.Web.UI.Page { }
public class MyUserControl : System.Web.UI.UserControl { }
助手,要麼他們可以使用:
void SetSessionValue<T>(string key, T value) { Session[key] = value; }
如何能夠做到像下面這樣?
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 { }
更新:我很興奮第二次希望我能解決這個問題,但唉,它不編譯。
public class WebObject<T> : T
{
}
public class MyWebPage : WebObject<System.Web.UI.Page>
{
}
這樣多少方法都會有你,有多少代碼將在每個方法?爲什麼不重複代碼?這一行看起來很簡單,可以擔心這一點。另外,如果'Page'和'UserControl'具有任何公共基類,則可以簡單地在該類型上創建擴展方法。例如。在'System.Web.UI.Control'或者'System.Web.UI.TemplateControl'上 - 你只有在你不需要自定義基類的狀態時才能做到這一點。 –