C# 在.net中将字符串转换为其类型

C# 在.net中将字符串转换为其类型,c#,.net,C#,.net,我有一个字符串“System.Linq.IQueryable`1[System.string]”,我想将其转换为底层.net类型type.GetType(“System.Linq.IQueryable`1[System.string]”)返回null。有人能帮我吗。你能接受一个真正的非抽象类型签名吗?例如Type.GetType(“System.Linq.EnumerableQuery`1[System.String]”应该适合您。我认为问题在于您使用的是Type.Name而不是Type.Ass

我有一个字符串
“System.Linq.IQueryable`1[System.string]”
,我想将其转换为底层.net类型
type.GetType(“System.Linq.IQueryable`1[System.string]”)
返回null。有人能帮我吗。

你能接受一个真正的非抽象类型签名吗?例如
Type.GetType(“System.Linq.EnumerableQuery`1[System.String]”
应该适合您。

我认为问题在于您使用的是
Type.Name
而不是
Type.AssemblyQualifiedName

您需要显式地包含程序集、版本和公钥令牌(如果它有)

如果您正在运行
.net4
,请尝试以下操作

Type t = Type.GetType("System.Linq.IQueryable`1[System.String], System.Core, "
     + "Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089");
您不必总是完全限定字符串的原因是,如果类型在当前程序集中或Mscorlib程序集中,则可以忽略额外的信息。发件人:

要获取的类型的程序集限定名。看见 AssemblyQualifiedName。如果类型位于当前正在执行的 在Mscorlib.dll中,提供类型名就足够了 由其命名空间限定


显示您的代码。。你的问题不清楚..字符串只是一个字符串,你不能将它转换为另一种类型,就像你不能将字符串“Apple”转换为实际的Apple一样。我认为你必须对字符串进行一些解析,因为这是一个泛型类型。google代表“type.GetType泛型”(比如:)