我有一个接受CultureInfo对象作为参数的服务方法。我想用它通过指定的语言从资源中获取正确的字符串。所以,我对像服务的方法:WCF服务得到错误的文化
public string GetTranslatedString(CultureInfo c)
和客户端上我把这个方法是这样的:
ServiceReference.GetTranslatedString(CultureInfo.CurrentUICulture);
我也试过:
ServiceReference.GetTranslatedString((CultureInfo)CultureInfo.CurrentUICulture.Clone());
但产生错误的结果!文化信息对象通过,就好像它描述的是服务所在的PC的文化,而不是客户所在的PC的文化。所以如果客户有“nl”文化,服务器仍然会获得“en”文化!为什么?我知道如何解决这个问题,否则将LCID传递给服务而不是对象,但我真的想知道为什么描述的方法不起作用。
有你使用的调试,以确保你传递什么你认为你从客户端传递?我不确定CultureInfo如何被解析到WSDL中。也许有一些问题呢?一般来说,尝试通过网络传递可互操作的东西。 –
您是否也可以提供客户创建CultureInfo对象的代码? – Talvalin
@Talvalin CultureInfo.CurrentUICulture是一个静态属性。我不知道它是如何初始化的。 –