创建自定义泛型类的实例和作为String存储在file中的类型



我试图创建一个泛型类的实例,但我的泛型类的T型,我已经通过这个链接http://msdn.microsoft.com/en-us/library/w3f99sx1 (v = vs.110) . aspx但是我找不到我要找的东西

我有这个代码

public class MyClass<T>
{
    public T prop { get; set; } 
}

类型存储在string中类型

string typeString = "System.String";

现在我想在myclass中这样使用这个类型

Type xt = new Type.GetType(typeString);
MyClass<xt> obj = new MyClass<xt>();

只是未知类型xt那我该怎么办呢!

所提供的链接中的构造泛型类型的实例一节涵盖了这种情况。

在你的情况下,你需要写

Type typeArgument = Type.GetType(typestring);
Type constructed = typeof(MyClass<>).MakeGenericType(typeArgument);
object instance = Activator.CreateInstance(constructed);

然而,这种技术的用例远不常见。您应该尽可能尝试在编译时提供类型信息。也就是说,尽量不要依赖反射来创建对象。对于这种情况,泛型方法特别有用。

方法Type.GetType(someString)在运行时获得类型,但泛型类必须在编译时求值。在<>符号之间,您需要指定类型本身,而不是对象type的实例。像这样的东西必须工作:

MyClass<String> obj = new MyClass<String>();

谢谢,

相关内容

  • 没有找到相关文章

最新更新