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

时间:2015-11-20 12:32:23

标签: c# asp.net .net asp.net-mvc-4

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

例如我有一个类名称ABC需要在某个时候继承PQR而XYZ有条件地像

Public Class ABC : PQR OR Public Class ABC:XYZ

所以我想在web.config app设置的帮助下做,如果我们需要Old Config继承PQR,否则继承XYZ

3 个答案:

答案 0 :(得分:5)

这实际上并不是设计继承的方式。这样做的方法是通过作文或工厂类。

您可以定义PQR和XYZ都实现的接口或抽象类。

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

选项2,工厂:有一个工厂类,按需制作这些对象并抓住正确的对象。

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

例如,如果您具有独立版本的控件,则可能要将主窗口用作用户控件。这就是我有条件地构建为窗口或用户控件的方式

如果是STANDALONE

public class MyUserControl : Window
{
}

其他

public class MyUserControl : UserControl
{
}

endif