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