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

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

MSDN参考

有帮助吗?

解决方案

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

extern alias FirstAlias;
extern alias SecondAlias;

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

然后在代码中使用 FirstBar SecondBar

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

其他提示

搜索“ extern alias 英寸;它是一个非常少使用的功能,只需要消除两个贡献相同类型的dll之间的歧义(例如,同一个程序集的两个不同版本,或者两个具有共享完全限定名称的类的程序集)。

"全局"是默认值。例如,如果您有一个名为 Foo.System 的类,则可以通过 global :: System 明确地引用主 System 命名空间。 / p>

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top