Он работает на компьютерах разработчиков, но не на некоторых серверах (по крайней мере, не на сервере 2012 R2), поэтому я пытался выяснить, что и почему.
Поэтому я попытался вручную создать CultureInfo с «en-UN», который работает и получает отображаемое имя «English (United Nations)», поэтому я предполагаю, что он существует где-то на моем компьютере.
Но когда я пытаюсь найти его во всех CultureInfos, это не так. там?
Я не понимаю, откуда берется информация о культуре, поскольку она не является частью CultureTypes.AllCultures, может кто-нибудь объяснить мне это?
System.Globalization.CultureInfo? test = new("en-UN", false);
string resultString = "Manually created: " + (test?.DisplayName ?? "NULL") + "\r\n";
foreach (CultureTypes cultureType in Enum.GetValues())
{
test = System.Globalization.CultureInfo.GetCultures(cultureType).Where(x => x.Name == "en-UN").FirstOrDefault();
resultString += "Found in " + cultureType.ToString() + ": " + (test?.DisplayName ?? "NULL") + "\r\n";
}
результат:
Manually created: English (United Nations)
Found in NeutralCultures: NULL
Found in SpecificCultures: NULL
Found in InstalledWin32Cultures: NULL
Found in AllCultures: NULL
Found in UserCustomCulture: NULL
Found in ReplacementCultures: NULL
Found in WindowsOnlyCultures: NULL
Found in FrameworkCultures: NULL