2008-11-13 8 views
57

Cuando agrego una referencia de ensamblaje a un proyecto en Visual Studio 8, la propiedad Aliases de esa referencia se establece en "global". ¿Para qué sirve esta propiedad y por qué está configurada como global?Qué uso tiene la propiedad Aliases de las referencias de ensamblado en Visual Studio 8

MSDN me dice que esta es una lista de alias para el ensamblado pero no por qué podría querer usar esta propiedad o por qué la mayoría tiene un alias como "global".

MSDN reference

Respuesta

98

Esto es para "alias externos". Supongamos que desea utilizar dos tipos diferentes, que se llaman Foo.Bar (es decir, Bar en un espacio de nombres de Foo). Los dos tipos estarán en diferentes montajes (por definición) - se utiliza la propiedad de VS para asociar un alias con cada referencia, a continuación, puede hacer:

extern alias FirstAlias; 
extern alias SecondAlias; 

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

y luego usar FirstBar y SecondBar en el código.

Así que, básicamente, es un nivel extra de nombres, y no debe usarlo a menos que realmente, realmente tenga que hacerlo. Confundirá a mucha gente. Intente evitar entrar en esa situación en primer lugar, pero tenga en cuenta esta solución para aquellos momentos en los que simplemente no puede evitarlo.

+1

Tuve el caso, cuando un proveedor tercero envía un producto que se ejecuta en .Net V2, con un delegado 'System.Func ' (¿quizás para replicar la sintaxis V3.5?) ... por supuesto, problemas ocurre cuando un proyecto .Net V4 hace referencia a la biblioteca de terceros. Al usar alias, evité conflictos (Visual Studio todavía tiene algunos problemas y detecta errores, pero no el compilador). Al usar la palabra clave extern (la primera vez que uso hoy), pude orientar explícitamente un tipo en la biblioteca de terceros. Estoy un poco sorprendido de tener que usar el alias en un tipo no conflictivo. –

+1

'Infragistics4.Documents.Excel.v13.2' y' InfragisticsWPF4.Documents.Excel.v13.2' tienen este problema. En el proceso de fusionar dos proyectos que mezclarán Windows.Forms y WPF. – AMissico

30

Búsqueda de "extern alias"; es una característica muy raramente utilizada que solo es necesaria para desambiguar entre dos DLL que contribuyen con los mismos tipos (por ejemplo, dos versiones diferentes del mismo ensamblado o dos ensamblados que tienen una clase que comparte un nombre completo).

"global" es el valor predeterminado. Por ejemplo, si tiene una clase llamada Foo.System, puede hacer referencia inequívocamente al espacio de nombres principal System a través del global::System.

Cuestiones relacionadas