我有一个字符串"System.Linq.IQueryable`1[System.String]"
,我想将其转换为基础.net类型Type.GetType("System.Linq.IQueryable`1[System.String]")
返回null。任何人都可以帮助我。
答案 0 :(得分: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中,提供类型名称就足够了 由其命名空间限定。
答案 1 :(得分:0)
你能采取真正的非抽象类型签名吗?例如,Type.GetType("System.Linq.EnumerableQuery`1[System.String]")
应该适合您。
答案 2 :(得分:0)
我认为问题在于您使用的是Type.Name
而不是Type.AssemblyQualifiedName
。