Visual Studio 8 中程序集引用的 Aliases 属性有什么用
当我向 Visual Studio 8 中的项目添加程序集引用时,该引用的 Aliases 属性设置为“全局”。 该属性有什么用处以及为什么将其设置为全局?
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".
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是针对“外部别名”的。 假设您要使用两种不同的类型,这两种类型都称为
Foo.Bar
(即Foo
命名空间中的Bar
)。 这两种类型将位于不同的程序集中(根据定义) - 您使用 VS 中的属性将别名与每个引用关联起来,然后您可以执行以下操作:然后使用
FirstBar
和SecondBar 在您的代码中。
所以基本上它是一个额外的命名级别 - 除非你真的非常需要,否则你不应该使用它。 它会让很多人感到困惑。 首先尽量避免陷入这种情况 - 但在无法避免的情况下请注意此解决方案。
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 ofFoo
). 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:and then use
FirstBar
andSecondBar
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.
搜索“外部别名” ; 这是一个很少使用的功能,只需要消除提供相同类型的两个 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 mainSystem
namespace viaglobal::System
.