我有一个实体配置文件,我需要从我网站上的所有aspx和ascx页面访问。我创建了一个类" Context"它具有profile属性并继承自System.Web.UI.Page。这对于aspx页面非常有用。
我需要将同一个父项应用于我的应用程序中的用户控件,我现在唯一的选择是创建另一个Context类" UserControlContext"继承自System.Web.UI.UserControls并让用户控制继承它。
我的问题是,这样我可以复制两个上下文页面的代码,如何使用一个Context类让ascx和aspx继承? Context类是什么类型的?
答案 0 :(得分:1)
Page
或Control
(或UserControl
)。他们不能共享相同的基类。
我建议将重复的代码移到另一个由Page
和Control
调用的类中。如果要在该类中使用,可以使用基类Control
,因此代码尽可能通用。
答案 1 :(得分:1)
您只能从C#中的一个类继承,因此您无法将这些功能放入两者的公共基类中(因为它们已经从System.Web.UI.Page
和System.Web.UI.UserControl
继承)。您可以做的是将常用功能移到其他类,然后在Context
和UserControlContext
类中使用该类。您不会直接从新类派生,但您可以将其封装在Context
和UserControlContext
类中,并从这些类中调用其方法。
当涉及到可以将代码移到另一个类的程度时,这取决于您的代码。