Другое английское название Чехии на моей локальной машине и на Azure - PullRequest
4 голосов
/ 24 апреля 2019

Я пытаюсь получить RegionInfo объект по названию страны.Я пришел с этим кодом:

 var regions = CultureInfo.GetCultures(CultureTypes.SpecificCultures).Select(x => new RegionInfo(x.LCID));
 var regionInfo = regions.FirstOrDefault(region => region.EnglishName.Contains(englishCountryName));

, и он отлично работает на моей машине.Но когда я развернул его в службе приложений Azure, он возвращает null для Чехии.

Итак, я проверил это:

//My machine
new RegionInfo(1029).EnglishName //returns Czechia
//Azure
new RegionInfo(1029).EnglishName //returns Czech Republic

Как оказалось, Чешская Республика изменила свое имя в 2016 году, так почему Azure отображает «старое» имя?Как сделать это решение независимым от культуры?

1 Ответ

1 голос
/ 24 апреля 2019

Если название страны может измениться, вам лучше использовать один из кодов ISO.

Если вы не можете использовать коды ISO на основе вашего ввода, вы можете взять на себя управление отображением ввода английского языка в код ISO, используячто-то вроде пакета ISO3166 NuGet.Я вижу, что текущая версия тоже не актуальна, но если вы ее внедрите, по крайней мере, вы получите непротиворечивое значение.

...