如何获取“List< String>”的类型在C#中使用Type.GetType()?
我已经尝试过了:
Type.GetType("List<String>"); Type.GetType("System.Collections.Generic.List.String"); // Or [String]
请注意,我不能使用typeof,因为我得到的类型的值是一个字符串.
解决方法
您无法从“List< String>”获取它,但您可以从Type.GetType获取它:
Type type = Type.GetType("System.Collections.Generic.List`1[System.String]");
在这种情况下你很幸运 – 列表< T>和字符串在mscorlib中,因此我们不必指定程序集.
`1部分指定了类型的arity:它有一个类型参数.方括号中的位指定类型参数.
你在哪里得到List< String>从?你能改变你的要求吗?它比解析字符串,计算类型参数的位置,在不同的命名空间和程序集中查找类型等更容易.如果您在有限的上下文中工作(例如,您只需要支持一组已知的类型)对某些细节进行硬编码可能是最容易的.