CultureInfo オブジェクトをパラメーターとして受け入れるサービス メソッドがあります。指定された言語でリソースから正しい文字列を取得するために使用したいと考えています。だから私はサービスに次のようなメソッドを持っています:
public string GetTranslatedString(CultureInfo c)
クライアントでは、このメソッドを次のように呼び出します。
ServiceReference.GetTranslatedString(CultureInfo.CurrentUICulture);
私も試しました:
ServiceReference.GetTranslatedString((CultureInfo)CultureInfo.CurrentUICulture.Clone());
しかし、それは間違った結果をもたらします! カルチャ情報オブジェクトは、クライアントが存在する PC のカルチャではなく、サービスが存在する PC のカルチャを記述しているかのように渡されます。したがって、クライアントに「nl」カルチャがある場合でも、サーバーは「en」カルチャを取得します! なんで?オブジェクトの代わりに LCID をサービスに渡すことで、この問題を解決する方法は知っていますが、説明したアプローチが機能しない理由を本当に知りたいです。