Какое использование свойства псевдонимов ссылок на сборки в Visual Studio 8

Когда я добавляю ссылку на сборку в проект в Visual Studio 8, для свойства Псевдонимы этой ссылки устанавливается значение «global». Для чего это свойство подходит и почему оно установлено как глобальное?

MSDN сообщает мне, что это список псевдонимов для сборки, но не почему я могу использовать это свойство или почему большинство из них имеют псевдонимы «глобальные».

Ссылка MSDN

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
69
0
42 107
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Найдите "внешний псевдоним"; это очень редко используемая функция, которая нужна только для устранения неоднозначности между двумя библиотеками DLL, которые содержат одни и те же типы (например, две разные версии одной и той же сборки или две сборки, у которых есть класс с полностью определенным именем).

"global" по умолчанию. Например, если у вас есть класс с именем Foo.System, вы можете однозначно ссылаться на основное пространство имен System через global::System.

Рабочая ссылка: docs.microsoft.com/en-us/dotnet/csharp/language-reference/…

kampsj 12.02.2019 18:26
Ответ принят как подходящий

Это для "внешних псевдонимов". Предположим, вы хотите использовать два разных типа, оба из которых называются Foo.Bar (то есть Bar в пространстве имен Foo). Эти два типа будут находиться в разных сборках (по определению) - вы используете свойство в VS, чтобы связать псевдоним с каждой ссылкой, тогда вы можете сделать:

extern alias FirstAlias;
extern alias SecondAlias;

using FirstBar = FirstAlias::Foo.Bar;
using SecondBar = SecondAlias::Foo.Bar;

а затем используйте FirstBar и SecondBar в своем коде.

Так что, по сути, это дополнительный уровень именования - и вы не должны использовать его, если в этом нет необходимости. Это запутает многих. В первую очередь постарайтесь избежать такой ситуации, но помните об этом решении в те моменты, когда вы просто не можете его избежать.

У меня был случай, когда сторонний поставщик отправлял продукт, работающий на .Net V2, с делегатом System.Func<TResult> (возможно, для репликации синтаксиса V3.5?) ... проблемы, конечно, возникают, когда упоминается проект .Net V4 сторонняя библиотека. Используя псевдоним, я избегал конфликтов (у Visual Studio все еще есть проблемы и обнаруживаются ошибки, но не у компилятора). Используя ключевое слово extern (впервые я использую сегодня), я смог явно указать тип в сторонней библиотеке. Я просто немного удивлен, что мне приходится использовать псевдоним для неконфликтного типа.

Steve B 22.09.2011 19:08
Infragistics4.Documents.Excel.v13.2 и InfragisticsWPF4.Documents.Excel.v13.2 имеют эту проблему. В процессе слияния двух проектов, которые будут смешивать Windows.Forms и WPF.
AMissico 11.11.2014 02:51

Исчезло ли свойство "Псевдонимы" ссылки? Я использую Сообщество VS 2017 и не могу найти эту опцию!

Pedro Gaspar 05.12.2018 20:18

@PedroGaspar: Хм, не уверен. Придется завтра искать.

Jon Skeet 05.12.2018 21:59

Другие вопросы по теме