Visual Studio 8中程序集引用的Aliases属性有何用处
-
08-07-2019 - |
题
当我在Visual Studio 8中向项目添加程序集引用时,该引用的Aliases属性设置为“global”。这个属性的优点是什么?它为什么设置为全局?
MSDN告诉我这是程序集的别名列表,但不是我可能想要使用此属性的原因,或者为什么大多数别名为“global”。
解决方案
这是针对“外部别名”。假设您要使用两种不同的类型,这两种类型都被称为 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>
不隶属于 StackOverflow