我有一个字符串"System.Linq.IQueryable`1[System.String]"
,我想将它转换为底层的 .net 类型Type.GetType("System.Linq.IQueryable`1[System.String]")
返回 null。任何人都可以帮助我解决这个问题。
问问题
111 次
3 回答
2
您需要明确包含程序集、版本和公钥令牌(如果有的话)。
如果你正在跑步.NET 4
,试试这个
Type t = Type.GetType("System.Linq.IQueryable`1[System.String], System.Core, "
+ "Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089");
您不必总是完全限定字符串的原因是,如果类型在当前程序集中或在 Mscorlib 程序集中,则可以省略额外信息。来自MSDN:
要获取的类型的程序集限定名称。请参阅 AssemblyQualifiedName。如果该类型在当前执行的程序集中或在 Mscorlib.dll 中,则提供由其命名空间限定的类型名称就足够了。
于 2013-04-03T11:46:14.740 回答
0
你能拿一个真正的非抽象类型签名吗?例如Type.GetType("System.Linq.EnumerableQuery`1[System.String]")
应该为你工作。
于 2013-04-03T11:43:08.903 回答
0
我认为问题在于您使用Type.Name
的是Type.AssemblyQualifiedName
.
于 2013-04-03T11:44:08.407 回答