我有一个接受 CultureInfo 对象作为参数的服务方法。我想用它通过指定的语言从资源中获取正确的字符串。所以我在服务上有一个方法,比如:
public string GetTranslatedString(CultureInfo c)
在客户端我这样称呼这个方法:
ServiceReference.GetTranslatedString(CultureInfo.CurrentUICulture);
我也试过:
ServiceReference.GetTranslatedString((CultureInfo)CultureInfo.CurrentUICulture.Clone());
但它会产生不正确的结果!文化信息对象被传递,就好像它描述了服务所在的 PC 的文化,而不是客户端所在的 PC 的文化。因此,如果客户端具有“nl”文化,服务器仍然会获得“en”文化!为什么?我知道如何通过将 LCID 传递给服务而不是对象来解决这个问题,但我真的很想知道为什么所描述的方法不起作用。