0

我有一个字符串"System.Linq.IQueryable`1[System.String]",我想将它转换为底层的 .net 类型Type.GetType("System.Linq.IQueryable`1[System.String]")返回 null。任何人都可以帮助我解决这个问题。

4

3 回答 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 回答