Visual Studio 8 中程序集引用的 Aliases 属性有什么用

发布于 2024-07-08 15:47:28 字数 278 浏览 7 评论 0原文

当我向 Visual Studio 8 中的项目添加程序集引用时,该引用的 Aliases 属性设置为“全局”。 该属性有什么用处以及为什么将其设置为全局?

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

MSDN 参考

When I add an assembly reference to a project in Visual Studio 8 the Aliases property, of that reference, is set to "global". What is this property good for and why is it set to global?

MSDN tells me that this is a list of aliases for the assembly but not why I might want to use this property or why most are aliased as "global".

MSDN reference

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

滥情空心 2024-07-15 15:47:29

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

extern alias FirstAlias;
extern alias SecondAlias;

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

然后使用 FirstBarSecondBar 在您的代码中。

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

This is for "extern aliases". Suppose you want to use two different types, both of which are called Foo.Bar (i.e. Bar in a namespace of Foo). The two types will be in different assemblies (by definition) - you use the property in VS to associate an alias with each reference, then you can do:

extern alias FirstAlias;
extern alias SecondAlias;

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

and then use FirstBar and SecondBar in your code.

So basically it's an extra level of naming - and you shouldn't use it unless you really, really have to. It will confuse a lot of people. Try to avoid getting into that situation in the first place - but be aware of this solution for those times where you just can't avoid it.

花开雨落又逢春i 2024-07-15 15:47:29

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

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

Search for "extern alias"; it is a very rarely used feature that is only needed to disambiguate between two dlls that contribute the same types (for example, two different versions of the same assembly, or two assemblies that have a class which shares a fully-qualified-name).

"global" is the default. For example, if you have a class called Foo.System, you can unambiguously refer to the main System namespace via global::System.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文