从字符串实例化一个泛型类型

3

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

string s = "GenericRouteHandler<MemberHandler>";

我怎么通过这个字符串实例化一个对象?我知道如何使用Type.GetType()实例化具体的类,然后使用Activator,但我不确定如何处理泛型类。


可能相关:https://dev59.com/pXVD5IYBdhLWcg3wWaVh - JYelton
1个回答

2

像这样 typeof(GenericRouteHandler<>).MakeGenericType(typeof(MemberHandler))

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

编辑:然后您需要激活类型Activator.CreateInstance() 或者如果知道签名,则调用构造函数 myGenericType.GetConstructor(ctorArgsTypes).Invoke(ctorParams);;如果缓存构造函数,则可以更快地进行速度优化而不是使用 Activator.CreateInstance()。

msdn


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接