当我在Visual Studio 8中向项目添加程序集引用时,该引用的Aliases属性设置为"global".这个属性有什么用?为什么它设置为全局?
MSDN告诉我,这是程序集的别名列表,但不是为什么我可能想要使用此属性或为什么大多数别名为"全局".
MSDN参考
这是"外部别名".假设您要使用两种不同的类型,这两种类型都被调用Foo.Bar
(即Bar
在命名空间中Foo
).这两种类型将在不同的程序集中(根据定义) - 您使用VS中的属性将别名与每个引用相关联,然后您可以执行以下操作:
extern alias FirstAlias; extern alias SecondAlias; using FirstBar = FirstAlias::Foo.Bar; using SecondBar = SecondAlias::Foo.Bar;
然后在代码中使用FirstBar
和SecondBar
.
所以基本上它是一个额外的命名级别 - 你不应该使用它,除非你真的,真的必须.这会让很多人感到困惑.尽量避免首先进入这种情况 - 但要注意那些你无法避免的解决方案.
搜索" extern alias "; 它是一个非常少使用的功能,只需要消除两个贡献相同类型的dll之间的歧义(例如,同一个程序集的两个不同版本,或者两个具有共享完全限定名称的类的程序集).
"global"是默认值.例如,如果您有一个被调用的类Foo.System
,则可以通过明确地引用主System
命名空间global::System
.