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
In the Project Designer, click the References tab. Click the Add button to open the Add Reference dialog box. In the Add Reference dialog box, select the tab indicating the type of component you want to reference. Select the components you want to reference, and then click OK.
Each extern alias declaration introduces an additional root-level namespace that parallels (but does not lie within) the global namespace. Thus types from each assembly can be referred to without ambiguity by using their fully qualified name, rooted in the appropriate namespace-alias.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With