ClassName
基本上我需要的是使用我在通用类型中使用 Type.GetType 获得的类型,
有可能吗,如果有的话怎么办? 我需要这样的东西:
Type t = Type.GetType("mynamespce.a.b.c");
var x = GenericClass<t>();
Basically what I need is to use the Type that i got using Type.GetType in a Generic Type,
is it possible, if yes how ?
I need something like this:
Type t = Type.GetType("mynamespce.a.b.c");
var x = GenericClass<t>();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
可以这样做: http://msdn.microsoft.com/en-us /library/b8ytshk6.aspx(请参阅“构造泛型类型的实例”部分)
以下示例创建一个
Dictionary
:It can be done: http://msdn.microsoft.com/en-us/library/b8ytshk6.aspx (See section "Constructing an Instance of a Generic Type")
The following example creates a
Dictionary<string,object>
:您可以使用 Type.MakeGenericType 和 Activator.CreateInstance 来创建泛型类型的实例,例如,
但如果您正在寻找的话,它不会在代码中被强类型化为泛型类的类型。这是不可能的,因为 C# 不允许您使用开放泛型类型。
You can use Type.MakeGenericType and Activator.CreateInstance to make an instance of the generic type, e.g.
But it won't be strongly typed as the type of generic class in your code, if that's what you're looking for. That isn't possible as C# doesn't allow you to work with open generic types.
是的,确实如此,但你必须进行进一步的反思。您将得到作为 System.Object 的结果对象。
Yes, it is, but you will have to use further reflection. And you get the resulting object as a System.Object.