Partilhar via


alias externo (Referência C#)

Talvez seja necessário fazer referência a duas versões de assemblies que tenham os mesmos nomes de tipo totalmente qualificados. Por exemplo, talvez seja necessário usar duas ou mais versões de um assembly no mesmo aplicativo. Usando um alias de assembly externo, os namespaces de cada assembly podem ser encapsulados dentro de namespaces de nível raiz nomeados pelo alias, o que permite que eles sejam usados no mesmo arquivo.

Nota

A palavra-chave extern também é usada como um modificador de método, declarando um método escrito em código não gerenciado.

Para fazer referência a dois assemblies com os mesmos nomes de tipo totalmente qualificados, um alias deve ser especificado em um prompt de comando, da seguinte maneira:

/r:GridV1=grid.dll

/r:GridV2=grid20.dll

Isso cria os aliases GridV1 externos e GridV2. Para usar esses aliases de dentro de um programa, faça referência a eles usando a extern palavra-chave. Por exemplo:

extern alias GridV1;

extern alias GridV2;

Cada declaração de alias externo introduz um namespace adicional de nível raiz que é paralelo (mas não está dentro) do namespace global. Assim, os tipos de cada assembly podem ser referidos sem ambiguidade usando seu nome totalmente qualificado, enraizado no namespace-alias apropriado.

No exemplo anterior, GridV1::Grid seria o controle de grade de grid.dll, e GridV2::Grid seria o controle de grade de grid20.dll.

Com o Visual Studio

Se você estiver usando o Visual Studio, os aliases podem ser fornecidos de maneira semelhante.

Adicione referência de grid.dll e grid20.dll ao seu projeto no Visual Studio. Abra uma guia de propriedade e altere os aliases de global para GridV1 e GridV2, respectivamente.

Use esses aliases da mesma maneira acima

 extern alias GridV1;  
  
 extern alias GridV2;  

Agora você pode criar alias para um namespace ou um tipo usando a diretiva alias. Para obter mais informações, consulte Usando diretiva.

using Class1V1 = GridV1::Namespace.Class1;

using Class1V2 = GridV2::Namespace.Class1;

Especificação da linguagem C#

Para obter mais informações, consulte a Especificação da linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso do C#.

Consulte também