【发布时间】:2011-01-05 22:45:57
【问题描述】:
我有一个字符串,其中包含具有指定类型的泛型类的名称:
string s = "GenericRouteHandler<MemberHandler>";
如何从这个字符串实例化一个实例?我知道如何使用 Type.GetType() 实例化一个具体的类,然后使用 Activator,但我不知道如何使用泛型类。
【问题讨论】:
我有一个字符串,其中包含具有指定类型的泛型类的名称:
string s = "GenericRouteHandler<MemberHandler>";
如何从这个字符串实例化一个实例?我知道如何使用 Type.GetType() 实例化一个具体的类,然后使用 Activator,但我不知道如何使用泛型类。
【问题讨论】:
点赞typeof(GenericRouteHandler<>).MakeGenericType(typeof(MemberHandler));
当然,如果您没有类型,则必须使用 Type.GetType(string) 而不是 typeof 来获取类型。
编辑:然后你必须激活类型 Activator.CreateInstance() 或者如果知道签名 myGenericType.GetConstructor(ctorArgsTypes).Invoke(ctorParams); 则调用构造函数;如果缓存构造函数会更快,它可以比 Activator.CreateInstance() 更快
【讨论】: