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