【问题标题】:Base class for ascx and aspxascx 和 aspx 的基类
【发布时间】:2014-12-29 11:28:29
【问题描述】:

我有一个实体配置文件,我需要从我网站中的所有 aspx 和 ascx 页面访问它。我创建了一个类“上下文”,它具有配置文件属性并继承自 System.Web.UI.Page。这对于 aspx 页面非常有效。

我需要将相同的父级应用到我的应用程序中的用户控件,我现在唯一的选择是创建另一个继承自 System.Web.UI.UserControls 的上下文类“UserControlContext”并让用户控件继承自它。

我的问题是这样我复制了两个上下文页面的代码,我怎样才能使用一个上下文类来让 ascx 和 aspx 都继承自? Context 类是什么类型的?

【问题讨论】:

    标签: c# asp.net .net


    【解决方案1】:

    不,你不能。您的控件是PageControl(或UserControl)。它们不能共享同一个基类。

    我建议将重复的代码移到另一个由PageControl 调用的类中。如果您想在该类中使用基类Control,则可以使用该类,因此代码尽可能通用。

    【讨论】:

      【解决方案2】:

      您只能从 C# 中的一个类继承,因此您不能将功能放入两者的公共基类中(因为它们已经从 System.Web.UI.PageSystem.Web.UI.UserControl 继承)。您可以做的是将通用功能移到其他类,然后在 ContextUserControlContext 类中使用该类。您不会直接从新类派生,但可以将其封装在 ContextUserControlContext 类中,并从这些类中调用其方法。

      当涉及到您可以在多大程度上将代码移至其他类时,这取决于您的代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-16
        • 1970-01-01
        • 1970-01-01
        • 2010-09-12
        • 2010-09-13
        相关资源
        最近更新 更多