是否可以创建动态派生类型的泛型类的实例。

Class GenericClass<T> {

}

Main()
{
    string inputtype = "classname, assemblyname";

    Type type = Type.GetType(inputtype);

    dynamic instance = Activator.CreateInstance(type);

    // Want to create a object of GenericClass<T> but I get compiletime errors.
    // Is it possible to do like below?

    GenericClass<instance> = new GenericClass<instance>();
}

最佳答案

您可以像这样使用反射:

object genericInstance = Activator.CreateInstance(typeof(GenericClass<>).MakeGenericType(type));

但是你必须强制转换它才能使用它,所以它不是类型安全的。

关于c# - 从动态类型创建泛型类的实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60057434/

10-09 21:59