У меня есть сервисный метод, который принимает объект CultureInfo в качестве параметра. Я хочу использовать его для получения правильных строк из ресурсов на указанном языке. Таким образом, у меня есть метод на службе, как:
public string GetTranslatedString(CultureInfo c)
И на клиенте я вызываю этот метод так:
ServiceReference.GetTranslatedString(CultureInfo.CurrentUICulture);
Я также пробовал:
ServiceReference.GetTranslatedString((CultureInfo)CultureInfo.CurrentUICulture.Clone());
Но это дает неверные результаты! Объект информации о культуре передается так, как если бы он описывал культуру ПК, где находится сервис, а не культуру ПК, где находится клиент. Так что, если у клиента культура "nl", сервер все равно получает культуру "en"! Зачем? Я знаю, как решить эту проблему, передав LCID службе, а не объекту, но я действительно хочу знать, почему описанный подход не работает.