Comparteix a través de


alias externo (Referencia de C#)

Es posible que deba hacer referencia a dos versiones de ensamblados que tienen los mismos nombres de tipo completos. Por ejemplo, es posible que tenga que usar dos o más versiones de un ensamblado en la misma aplicación. Mediante el uso de un alias de ensamblado externo, los espacios de nombres de cada ensamblado pueden ajustarse en espacios de nombres de nivel de raíz denominados por el alias, lo que permite que se usen en el mismo archivo.

Nota:

La palabra clave extern también se usa como un modificador de método, y declara un método escrito en código no administrado.

Para hacer referencia a dos ensamblados con los mismos nombres de tipo completos, debe especificarse un alias en un símbolo del sistema, como sigue:

/r:GridV1=grid.dll

/r:GridV2=grid20.dll

Esto crea los alias externos GridV1 y GridV2. Para usar estos alias desde dentro de un programa, se hace referencia a ellos mediante la palabra clave extern. Por ejemplo:

extern alias GridV1;

extern alias GridV2;

Cada declaración de alias externo introduce un espacio de nombres de nivel de raíz adicional que es semejante al espacio de nombres global (pero que no se encuentra en su interior). Por tanto, se puede hacer referencia a los tipos de cada ensamblado sin ambigüedad mediante su nombre completo, con raíz en el alias de espacio de nombres adecuado.

En el ejemplo anterior, GridV1::Grid sería el control de cuadrícula de grid.dll, y GridV2::Grid sería el control de cuadrícula de grid20.dll.

Uso de Visual Studio

Si usa Visual Studio, los alias se pueden proporcionar de manera similar.

Agregue una referencia de grid.dll y grid20.dll al proyecto en Visual Studio. Abra una pestaña de propiedades y cambie los alias de global a GridV1 y GridV2, respectivamente.

Use estos alias igual que antes.

 extern alias GridV1;  
  
 extern alias GridV2;  

Ahora puede crear un alias para un espacio de nombres o un tipo mediante la directiva de alias. Para más información, consulte la directiva using.

using Class1V1 = GridV1::Namespace.Class1;

using Class1V2 = GridV2::Namespace.Class1;

Especificación del lenguaje C#

Para obtener más información, consulte la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.

Vea también