Для чего используется свойство Aliases ссылок на сборки в Visual Studio 8 - PullRequest
62 голосов
/ 13 ноября 2008

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

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

Ссылка MSDN

Ответы [ 2 ]

108 голосов
/ 13 ноября 2008

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

extern alias FirstAlias;
extern alias SecondAlias;

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

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

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

31 голосов
/ 13 ноября 2008

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

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

...