我跑
时得到nullType.GetType(
"System.Collections.Generic.Stack`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]")
当我跑
时,我得到了预期的类型Type.GetType(
"System.Collections.Generic.List`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]")
Stack类型有什么问题?为什么GetType在这种情况下返回null?
答案 0 :(得分:1)
您应该使用Type.AssemblyQualifiedName代替Type.FullName
。
Type.GetType("System.Collections.Generic.Stack`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
这正确地返回等效于typeof(Stack<Int32>)
这考虑到Stack与int和List(mscorlib)不在同一个程序集中,而是在System中,这就是为什么它在没有正确的程序集限定的情况下返回null的原因。