Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возможно, вам придется ссылаться на две версии сборок с одинаковыми полными именами типов. Например, в одном приложении может потребоваться использовать две или более версии сборки. Используя псевдоним внешней сборки, пространства имен из каждой сборки можно упаковать в пространства имен корневого уровня с именем псевдонима, который позволяет использовать их в одном файле.
Замечание
Ключевое слово extern также используется в качестве модификатора метода, объявляя метод, написанный в неуправляемом коде.
Чтобы ссылаться на две сборки с одинаковыми полными именами типов, псевдоним должен быть указан в командной строке следующим образом:
/r:GridV1=grid.dll
/r:GridV2=grid20.dll
При этом создаются внешние псевдонимы 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. Откройте вкладку свойств и измените псевдонимы с глобального на GridV1 и GridV2 соответственно.
Используйте эти псевдонимы так же, как описано выше
extern alias GridV1;
extern alias GridV2;
Теперь можно создать псевдоним для пространства имен или типа с помощью директивы псевдонима. Дополнительные сведения см. в директиве using.
using Class1V1 = GridV1::Namespace.Class1;
using Class1V2 = GridV2::Namespace.Class1;
Спецификация языка C#
Дополнительные сведения см. в спецификации языка C#. Спецификация языка является авторитетным источником синтаксиса и использования языка C#.