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#.