从字符串实例化泛型类型

时间:2011-01-05 22:45:58

标签: c# generics instance

我有一个字符串,其中包含具有指定类型的泛型类的名称:

string s = "GenericRouteHandler<MemberHandler>";

如何从此字符串中实例化实例?我知道如何使用Type.GetType()实例化一个具体的类,然后使用Activator,但我不知道在哪里使用泛型类。

1 个答案:

答案 0 :(得分:2)

喜欢这个typeof(GenericRouteHandler<>).MakeGenericType(typeof(MemberHandler));

当然,如果您没有类型,则必须使用Type.GetType(string)来获取类型,而不是typeof

编辑:如果知道签名Activator.CreateInstance(),则必须激活类型myGenericType.GetConstructor(ctorArgsTypes).Invoke(ctorParams);或调用构造函数;如果缓存consturctors它可以更快,那么它可以比Activator.CreateInstance()

更快

msdn