фонаСвязанного Const скрывается глобальным Const
Решением является веб-приложением MVC, он подключается к двум версиям того же API. Коннекторы представляют собой библиотеки классов, в которых соответствующая версия wsdl API была израсходована на прокси-класс. Веб-проект ссылается на обе библиотеки (с тем же пространством имен). Более старая, менее используемая версия сглажена, более новая версия использует глобальный псевдоним в попытке уменьшить атрибуты псевдонимов в базе кода.
Этого вопрос
При попытке получить доступ к постоянной строке в новой глобальной ссылке, я получаю значение старшей совмещенной библиотеки.
//New v6
public class AgeCode
{
public const string Adult = "ADT";
public const string Child = "CHD";
public const string Infant = "INF";
}
//Old v5
public class AgeCode
{
public const string Adult = "ADT";
public const string Child = "CLD";
public const string Infant = "INF";
}
//Output of the below is "CLD"
var code = global::Gateways.API.AgeCode.Child
Ситуация похожа на этот пример: http://www.davidarno.org/c-howtos/aliases-overcoming-name-conflicts-part-2-extern-alias/
Однако в моем случае оба класса будут иметь переменную «Pi».
: EDIT:
Я попытался изменить Конст declerations к 'статической ReadOnly' без успеха.
В соответствии с просьбой (Во всех случаях я изменил название API, чтобы «API»):
<Reference Include="Gateways.API.5, Version=5.0.30922, Culture=neutral, PublicKeyToken=111111111, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Libs\Gateways.API\5\Gateways.API.dll</HintPath>
<Aliases>ApiV5</Aliases>
</Reference>
<Reference Include="Gateways.API.6, Version=6.0.31238, Culture=neutral, PublicKeyToken=222222222, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Libs\Gateways.API\6\Gateways.API.dll</HintPath>
<Private>False</Private>
</Reference>
@HenkHolterman Класс с псевдонимом не используется в классе, в котором возникает моя проблема (нет «внешнего псевдонима ...»), а другой - «использование Gateways.API». – WillDud
@WillDud - оба эти класса в одном пространстве имен или в разных пространствах имен? –
@ meh-uk Они оба находятся в одном пространстве имен. Мы разработали библиотеку против версии 5 API, затем они выпустили версию 6, мы обновили эту же базу кода (в ветке). Поскольку мы все общались, было довольно легко ссылаться на обе версии в одном и том же веб-проекте. Самая сложная часть - это 2 файла с таким же именем в \ bin (и эта ошибка). – WillDud