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