【问题标题】:Instantiate a generic type from string从字符串实例化泛型类型
【发布时间】:2011-01-05 22:45:57
【问题描述】:

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

string s = "GenericRouteHandler<MemberHandler>";

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

【问题讨论】:

标签: c# generics instance


【解决方案1】:

点赞typeof(GenericRouteHandler&lt;&gt;).MakeGenericType(typeof(MemberHandler));

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

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

msdn

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多