Compartilhar via


extern alias (Referência de C#)

Talvez seja necessário referenciar duas versões de assemblies que têm os mesmos nomes de tipo totalmente qualificado. Por exemplo, você pode ter que usar duas ou mais versões de um assembly no mesmo aplicativo. Ao usar um alias de assembly externo, os namespaces de cada assembly podem ser encapsulados dentro de namespaces de nível raiz nomeados pelo alias, permitindo que eles sejam utilizados no mesmo arquivo.

Observação

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 referenciar dois assemblies com os mesmos nomes de tipo totalmente qualificado, um alias deve ser especificado em um prompt de comando, da seguinte maneira:

/r:GridV1=grid.dll

/r:GridV2=grid20.dll

Isso cria os alias externos GridV1 e GridV2. Para usar esses aliases de dentro de um programa, referencie-os usando a palavra-chave extern. Por exemplo:

extern alias GridV1;

extern alias GridV2;

Cada declaração de alias externo apresenta um namespace de nível raiz adicional que funciona de forma paralela (mas não dentro) com o namespace global. Portanto, os tipos de cada assembly podem ser referenciados sem ambiguidade, usando seus nomes totalmente qualificados, enraizados no alias de namespace apropriado.

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

Como usar o Visual Studio

Se você estiver usando o Visual Studio, os alias poderão 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 alias de global para GridV1 e GridV2, respectivamente.

Use esses alias da mesma forma acima

 extern alias GridV1;  
  
 extern alias GridV2;  

Agora você pode criar alias para um namespace ou para um tipo usando a diretiva de alias. Para obter mais informações, confira Diretiva using.

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

Confira também