Type.GetType()和Assembly.GetType()返回不同的结果

时间:2014-01-06 15:28:48

标签: c# .net types assemblies

以下代码会产生不同的结果:

class X<R>
{
    public class Y { }
}

...

var t = typeof(X<int>.Y);
var n = t.ToString().Dump(); // <- X`1+Y[System.Int32]

Type.GetType(n).Dump(); // <-- X`1+Y[System.Int32]
t.Assembly.GetType(n).Dump(); // <-- null

为什么Type.GetType(n)找到类型但t.Assembly.GetType(n)没有?

1 个答案:

答案 0 :(得分:4)

根据http://msdn.microsoft.com/en-us/library/y0cd10tb%28v=vs.110%29.aspxAssembly.GetType(string)需要该类型的完整名称。

尝试在类型上使用FullName而不是ToString()来获取全名,而不是短名称。