0

私は string を持っています。"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 に答える