Поделиться через


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

Может потребоваться ссылаться на две версии сборок с одинаковыми полными именами типов. Например, может потребоваться использовать две или более версии сборки в одном приложении. С помощью псевдонима внешней сборки можно упаковать пространства имен из каждой сборки в пространства имен корневого уровня с именем псевдонима. Этот подход позволяет использовать обе версии в одном файле.

Справочные документы по языку C# описывают последнюю выпущенную версию языка C#. Она также содержит начальную документацию по функциям в общедоступных предварительных версиях для предстоящего языкового выпуска.

Документация определяет любую функцию, впервые представленную в последних трех версиях языка или в текущих общедоступных предварительных версиях.

Подсказка

Чтобы узнать, когда функция впервые появилась в C#, ознакомьтесь со статьей об истории версий языка C#.

Замечание

Ключевое слово extern также используется в качестве модификатора метода, объявляя метод, написанный в неуправляемом коде.

Чтобы ссылаться на две сборки с одинаковыми полными именами типов, укажите псевдоним в CSPROJ-файле и добавьте следующий код:

<Reference Include="grid.dll"> 
    <Aliases>GridV1</Aliases>
</Reference>
<Reference Include="grid20.dll">
    <Aliases>GridV2</Aliases>
</Reference>

Дополнительные сведения см. в статье о задаче CSC в документации по Visual Studio.

Эта команда создает внешние псевдонимы GridV1 и GridV2. Чтобы использовать эти псевдонимы из программы, ссылайтесь на них с помощью ключевого extern слова. Рассмотрим пример.

extern alias GridV1; extern alias GridV2;

Каждое объявление экстерна псевдонима представляет дополнительное пространство имен корневого уровня, которое параллелирует (но не лежит в пределах) глобального пространства имен. Вы можете ссылаться на типы из каждой сборки без неоднозначности, используя полное имя, корневое имя в соответствующем псевдониме пространства имен.

В предыдущем примере GridV1::Grid — это элемент управления сетки, из grid.dllgrid20.dllкоторый GridV2::Grid используется элемент управления сеткой.

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

Если вы используете Visual Studio, вы можете предоставить псевдонимы таким же образом.

Добавьте ссылки на grid.dll и grid20.dll в проект в Visual Studio. Откройте вкладку свойств и измените псевдонимы соответственно globalGridV1GridV2 .

Используйте эти псевдонимы так же, как описано ранее.

extern alias GridV1;  
extern alias GridV2;  

Теперь можно создать псевдоним для пространства имен или типа с помощью директивы псевдонима. Дополнительные сведения см. в директиве using.

using Class1V1 = GridV1::Namespace.Class1;
using Class1V2 = GridV2::Namespace.Class1;

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

Дополнительные сведения см. в спецификации языка C#. Спецификация языка является авторитетным источником синтаксиса и использования языка C#.

См. также