WCF服务文化错误

时间:2011-11-29 15:33:54

标签: c# wcf user-interface cultureinfo currentuiculture

我有一个接受CultureInfo对象作为参数的服务方法。我想使用它通过指定的语言从Resources获取正确的字符串。所以我在服务上有一个方法,如:

public string GetTranslatedString(CultureInfo c)

在客户端我称之为这样的方法:

ServiceReference.GetTranslatedString(CultureInfo.CurrentUICulture);

我也试过了:

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

但它会产生错误的结果!文化信息对象被传递,好像它描述了服务所在的PC的文化,而不是客户端所在PC的文化。因此,如果客户端具有“nl”文化,服务器仍然会获得“en”文化!为什么?我知道如何通过将LCID传递给服务而不是对象来解决这个问题,但我真的想知道为什么所描述的方法不起作用。

1 个答案:

答案 0 :(得分:1)

试试这个(只有4个乐趣):

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