使用类型来实例化使用受限泛型的派生类

Tho*_*mas 7 c# generics

我正在使用通用工厂类,其中通用部分是正在使用的派生类.正常用法很明确:BaseClass<DerivedA> C = new BaseClass<DerivedA>().现在虽然我正在尝试将属性注入到我使用这些类的类中.为此,我尝试将Type作为参数(以便我可以注入正在使用的派生类).

现在虽然我有点不知所措,尽管寻找例子并自己尝试.而我现在想知道:这样的构造是否可以使用?如果是这样,我如何实例化该类并使用Exists和ExistsB?

用法:

public class MyMainClass
{
    object _ClassInstance; // BaseClass<DerivedA> or BaseClass<DerivedB>

    public MyyMainClass(Type typeIWant)
    {
          .....
    }
}

....
MyMainClass a = new MyMainClass(typeof(DerivedA));
MyMainClass b = new MyMainClass(typeof(DerivedB));
Run Code Online (Sandbox Code Playgroud)

通用类:

public abstract class BaseClass<T> where T: BaseClass<T>, new()
{
...
    public bool Exists(int a) {...}
}
Run Code Online (Sandbox Code Playgroud)

派生类:

public class DerivedA :BaseClass<DerivedA>
{
...
}

public class DerivedB :BaseClass<DerivedB>
{
...
   public bool ExistsB(string a) {...}
}
Run Code Online (Sandbox Code Playgroud)

cjj*_*ogo 1

这是你想要的吗?

Object instance1 = Activator.CreateInstance<Object>();
Object instance2 = Activator.CreateInstance(typeof(object));
Run Code Online (Sandbox Code Playgroud)