2009-09-23 89 views
0

我有两个类,我的页面和控件继承。这两个类获得相同的基本信息集,但按其原样执行两次。有没有办法从一个基类继承?ASP.NET会话继承

public partial class SessionPage : System.Web.UI.Page 
{ 
    protected override void OnInit(EventArgs e) 
    { 
     // Loads the session information from the database 
     // stores in member vars for the page to use 
    } 
} 

public partial class SessionControl : System.Web.UI.UserControl 
{ 
    protected override void OnInit(EventArgs e) 
    { 
     // Loads the session information from the database 
     // stores in member vars for the user control to use 
    } 
} 

回答

1

看看这个stackoverflow post哪个对待你的问题。

// Loads the session information from the database 
// stores in member vars for the page to use 

可以实现为一个扩展方法,这将允许您重用逻辑之内的两次,页面和用户控件。

0

C#不允许多重继承,并且您需要从Page或UserControl继承。所以,不,没有办法从同一个基类继承。

您应该将加载和初始化逻辑放在它自己的类中;那么你可以在OnInit方法中实例化这个类的一个实例。这样你就可以避免重复的代码。

0

您可以将逻辑放在一个类中,然后让Page和UserControl自定义类扩展一个通用接口。

你仍然需要像你一样子类Page和UserControl,但至少逻辑不会被重复,只有重载的方法和调用公共逻辑类。不过,由于代码共享的原因,这仍然有所改进。