Псевдоним extern (Справочник по C#)extern alias (C# Reference)

Иногда может потребоваться сослаться на две версии сборок, которые имеют одинаковые полные имена типов.You might have to reference two versions of assemblies that have the same fully-qualified type names. Например, если необходимо использовать две или более версии сборки в одном приложении.For example, you might have to use two or more versions of an assembly in the same application. Используя внешний псевдоним сборки, пространства имен для каждой сборки можно перенести внутрь пространств имен корневого уровня с именованием по псевдониму, что позволяет использовать их в одном файле.By using an external assembly alias, the namespaces from each assembly can be wrapped inside root-level namespaces named by the alias, which enables them to be used in the same file.

Примечание

Ключевое слово extern также используется в качестве модификатора метода, объявляющего метод, написанный в неуправляемом коде.The extern keyword is also used as a method modifier, declaring a method written in unmanaged code.

Для ссылки на две сборки с одинаковыми полными именами типов псевдоним необходимо указать в командной строке следующим образом:To reference two assemblies with the same fully-qualified type names, an alias must be specified at a command prompt, as follows:

/r:GridV1=grid.dll

/r:GridV2=grid20.dll

При этом создаются внешние псевдонимы GridV1 и GridV2.This creates the external aliases GridV1 and GridV2. Чтобы использовать эти псевдонимы в программе, сошлитесь на них с помощью ключевого слова extern.To use these aliases from within a program, reference them by using the extern keyword. Пример:For example:

extern alias GridV1;

extern alias GridV2;

Каждое объявление псевдонима extern создает дополнительное пространство имен корневого уровня, которое является параллельным для глобального пространства имен (но не находится в его пределах).Each extern alias declaration introduces an additional root-level namespace that parallels (but does not lie within) the global namespace. Таким образом, на типы из каждой сборки можно ссылаться без неоднозначности, используя их полное имя, размещенное в соответствующем пространстве имен-псевдониме.Thus types from each assembly can be referred to without ambiguity by using their fully qualified name, rooted in the appropriate namespace-alias.

В предыдущем примере GridV1::Grid является элементом управления сетки из grid.dll, а GridV2::Grid — элементом управления сетки из grid20.dll.In the previous example, GridV1::Grid would be the grid control from grid.dll, and GridV2::Grid would be the grid control from grid20.dll.

Использование Visual StudioUsing Visual Studio

Если вы используете Visual Studio, псевдонимы можно указать аналогичным образом.If you are using Visual Studio, aliases can be provided in similar way.

Добавьте ссылку на grid.dll и grid20.dll в проект в Visual Studio.Add reference of grid.dll and grid20.dll to your project in Visual Studio. Откройте вкладку свойств и измените псевдонимы с глобальных на GridV1 и GridV2 соответственно.Open a property tab and change the Aliases from global to GridV1 and GridV2 respectively.

Используйте эти псевдонимы так же, как описано выше.Use these aliases the same way above

 extern alias GridV1;  
  
 extern alias GridV2;  

Теперь можно создать псевдоним для пространства имен или типа, используя директиву псевдонимов using.Now you can create alias for a namespace or a type by using alias directive. Дополнительные сведения см. в разделе Директива using.For more information, see using directive.

using Class1V1 = GridV1::Namespace.Class1;

using Class1V2 = GridV2::Namespace.Class1;

Спецификация языка C#C# Language Specification

Дополнительные сведения см. в спецификации языка C#.For more information, see the C# Language Specification. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.The language specification is the definitive source for C# syntax and usage.

См. такжеSee also