如何在.net中有条件地继承类

本文关键字:继承 有条件 net | 更新日期: 2023-09-27 18:22:48

我不确定这是否可能,但我有一个要求,需要有条件地继承类。

例如,我有一个类名ABC有时需要继承PQR,XYZ有条件地像一样

Public Class ABC : PQR OR Public Class ABC:XYZ

因此,如果我们需要Old config inherit PQR else inherit XYZ

如何在.net中有条件地继承类

,我想在web.config应用程序设置的帮助下这样做

继承并不是这样设计的。实现这一点的方法是通过组合类或工厂类。

无论哪种方式,您都可以定义PQR和XYZ都实现的接口或抽象类。

选项1,组合:让你的类包含一个属于该接口或抽象类类型的成员,然后使用配置来决定分配给该成员的具体类。

选项2,工厂:有一个工厂类,可以根据需要生成这些对象并获取正确的对象。

您需要两个不同的类ABC1和ABC2,但您可以使它们实现相同的接口(IAbc)。

然后,您可以在代码的位置使用该接口,您通常使用ABC。

您将无法直接创建这些类的实例,但您可以在Factory类或IoC容器上进行中继。

如果您有独立版本的控件,也许您想将主窗口用作用户控件。这就是我有条件地构建窗口或用户控制的方式

如果独立

public class MyUserControl : Window
{
}

其他

public class MyUserControl : UserControl
{
}

endif