在 VisualStudio8中使用的是程序集引用的 Aliases 属性

在 VisualStudio8中向项目添加程序集引用时,该引用的 Aliases 属性被设置为“ global”。这个属性有什么好处,为什么设置为全局的?

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

MSDN 参考

46453 次浏览

搜索“ 外部化名”; 这是一个很少使用的特性,只需要在两个 dll 之间消除相同类型的歧义(例如,同一程序集的两个不同版本,或两个程序集有一个共享完全限定名的类)。

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

这是“外部化名”。假设您想使用两种不同的类型,它们都称为 Foo.Bar(即 Foo命名空间中的 Bar)。这两种类型将在不同的程序集中(根据定义)-您使用 VS 中的属性将别名与每个引用关联,然后您可以:

extern alias FirstAlias;
extern alias SecondAlias;


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

然后在代码中使用 FirstBarSecondBar

所以基本上它是一个额外的命名级别-你不应该使用它,除非你真的,真的必须。这会让很多人困惑。一开始就尽量避免陷入这种情况——但是在那些你无法避免的时候要注意这个解决方案。