Служба WCF получает неправильную культуру - PullRequest
0 голосов
/ 29 ноября 2011

У меня есть сервисный метод, который принимает объект CultureInfo в качестве параметра. Я хочу использовать его для получения правильных строк из ресурсов на указанном языке. Таким образом, у меня есть метод на службе, как:

public string GetTranslatedString(CultureInfo c)

И на клиенте я вызываю этот метод так:

ServiceReference.GetTranslatedString(CultureInfo.CurrentUICulture);

Я также пробовал:

ServiceReference.GetTranslatedString((CultureInfo)CultureInfo.CurrentUICulture.Clone());

Но это дает неверные результаты! Объект информации о культуре передается так, как если бы он описывал культуру ПК, где находится сервис, а не культуру ПК, где находится клиент. Так что, если у клиента культура "nl", сервер все равно получает культуру "en"! Зачем? Я знаю, как решить эту проблему, передав LCID службе, а не объекту, но я действительно хочу знать, почему описанный подход не работает.

1 Ответ

1 голос
/ 29 ноября 2011

Попробуйте это (всего 4 веселья):

CultureInfo ci = CultureInfo.CurrentUICulture;
string text = ServiceReference.GetTranslatedString(ci);
...