我有一个字符串,其中包含具有指定类型的泛型类的名称:
string s = "GenericRouteHandler<MemberHandler>";
如何从此字符串中实例化实例?我知道如何使用Type.GetType()实例化一个具体的类,然后使用Activator,但我不知道在哪里使用泛型类。
答案 0 :(得分:2)
喜欢这个typeof(GenericRouteHandler<>).MakeGenericType(typeof(MemberHandler));
当然,如果您没有类型,则必须使用Type.GetType(string)
来获取类型,而不是typeof
。
编辑:如果知道签名Activator.CreateInstance()
,则必须激活类型myGenericType.GetConstructor(ctorArgsTypes).Invoke(ctorParams);
或调用构造函数;如果缓存consturctors它可以更快,那么它可以比Activator.CreateInstance()