摘要:一个类型的FullName是能够在一个Assembly(程序集)里唯一限定的名字,所以至少要有名称空间(Namespace)的信息。而一个类型的AssemblyQualifiedName则还要唯一限定了Assembly的名字。
如果Type t = typeof(bool);其Name, FullName和AssemblyQualifiedName分别是
Boolean
System.Boolean
System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
如果Type t = typeof(Nullable<bool>);呢?能不能设想其FullName会是什么样的?
你会注意到其FullName中bool类型显示的是AssemblyQualifiedName。不能只使用bool的FullName,虽然System.Boolean是在其定义的assembly(即mscorlib)中唯一指定了此类型,在别的Assembly中也可能有另外一个类有着相同的FullName。所以,为了能够在一个Assembly中(也是mscorlib)唯一限定Nullable<bool>, bool必须使用AssemblyQualifiedName才正确。
如果Type t = typeof(Nullable<bool>);其Name, FullName和AssemblyQualifiedName分别是:
Nullable`1
System.Nullable`1[[System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
System.Nullable`1[[System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
贴子以"现状"提供且没有任何担保也没有授予任何权利
...[
阅读全文]