Compartir por


alias extern (referencia de C#)

Es posible que tenga que hacer referencia a dos versiones de ensamblados que tengan los mismos nombres de tipo completos. Por ejemplo, puede 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 se pueden encapsular dentro de espacios de nombres de nivel raíz denominados por el alias, lo que les permite usarse en el mismo archivo.

Nota:

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

Para hacer referencia a dos ensamblados con los mismos nombres de tipo completos, se debe especificar un alias en un símbolo del sistema, como se indica a continuación:

/r:GridV1=grid.dll

/r:GridV2=grid20.dll

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

extern alias GridV1;

extern alias GridV2;

Cada declaración de alias extern introduce un espacio de nombres de nivel raíz adicional que es paralelo (pero no está dentro) del espacio de nombres global. Por lo 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.dlly GridV2::Grid sería el control de cuadrícula de grid20.dll.

Uso de Visual Studio

Si usa Visual Studio, se pueden proporcionar alias de forma 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 de la misma manera anterior.

 extern alias GridV1;  
  
 extern alias GridV2;  

Ahora puede crear alias para un espacio de nombres o un tipo mediante la directiva alias. Para obtener más información, consulte using (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 el origen definitivo de la sintaxis y el uso de C#.

Consulte también