Que uso é a propriedade Aliases de referências de assembly no Visual Studio 8

Quando adiciono uma referência de assembly a um projeto no Visual Studio 8, a propriedade Aliases, dessa referência, é definida como “global”. Para que serve essa propriedade e por que ela é definida como global?

MSDN me diz que esta é uma lista de aliases para o assembly mas não porque eu poderia querer usar essa propriedade ou porque a maioria é alias como “global”.

Referência do MSDN

Isso é para “aliases externos”. Suponha que você queira usar dois tipos diferentes, ambos chamados Foo.Bar (isto é, Bar em um namespace de Foo ). Os dois tipos estarão em assemblies diferentes (por definição) – você usa a propriedade no VS para associar um alias a cada referência, então você pode fazer:

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

e, em seguida, use FirstBar e SecondBar no seu código.

Então, basicamente, é um nível extra de nomeação – e você não deve usá-lo, a menos que você realmente precise. Isso vai confundir muita gente. Tente evitar entrar nessa situação em primeiro lugar – mas esteja ciente desta solução para aqueles momentos em que você simplesmente não pode evitá-la.

Procure por ” extern alias “; é um recurso muito raramente usado que é necessário apenas para desambiguar entre dois dlls que contribuem com os mesmos tipos (por exemplo, duas versões diferentes do mesmo assembly ou dois assemblies que possuem uma class que compartilha um nome totalmente qualificado).

“global” é o padrão. Por exemplo, se você tem uma class chamada Foo.System , você pode se referir sem ambigüidade ao namespace System principal via global::System .