Visual Studio 8中的程序集引用的Aliases属性有什么用处?

当我在Visual Studio 8中向项目添加一个程序集引用时,该引用的Aliases属性被设置为“global”。 什么是这个属性的好处,为什么它设置为全球?

MSDN告诉我,这是程序集的别名列表,但不是为什么我可能想要使用这个属性,或者为什么大多数被别名为“全局”。

MSDN参考

这是“外部别名”。 假设你想要使用两种不同的types,这两种types都被称为Foo.Bar (即Foo的命名空间中的Bar )。 这两种types将在不同的程序集中(按照定义) – 您使用VS中的属性将别名与每个引用关联,然后您可以执行:

 extern alias FirstAlias; extern alias SecondAlias; using FirstBar = FirstAlias::Foo.Bar; using SecondBar = SecondAlias::Foo.Bar; 

然后在代码中使用FirstBarSecondBar

所以基本上这是一个额外的命名水平 – 你不应该使用它,除非你真的,真的必须。 这会混淆很多人。 尽量避免陷入这种情况,但要注意那些你无法避免的情况。

search“ extern alias ”; 它是一个很less使用的特性,只需要在贡献相同types的两个dll(例如,同一个程序集的两个不同版本,或者具有共享完全限定名称的类的两个程序集)之间消除歧义。

“全球”是默认的。 例如,如果您有一个名为Foo.System的类,则可以通过global::System明确引用主System名称空间。