0

CultureInfo オブジェクトをパラメーターとして受け入れるサービス メソッドがあります。指定された言語でリソースから正しい文字列を取得するために使用したいと考えています。だから私はサービスに次のようなメソッドを持っています:

public string GetTranslatedString(CultureInfo c)

クライアントでは、このメソッドを次のように呼び出します。

ServiceReference.GetTranslatedString(CultureInfo.CurrentUICulture);

私も試しました:

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

しかし、それは間違った結果をもたらします! カルチャ情報オブジェクトは、クライアントが存在する PC のカルチャではなく、サービスが存在する PC のカルチャを記述しているかのように渡されます。したがって、クライアントに「nl」カルチャがある場合でも、サーバーは「en」カルチャを取得します! なんで?オブジェクトの代わりに LCID をサービスに渡すことで、この問題を解決する方法は知っていますが、説明したアプローチが機能しない理由を本当に知りたいです。

4

1 に答える 1

1

これを試してください(たっ​​た4つの楽しみ):

CultureInfo ci = CultureInfo.CurrentUICulture;
string text = ServiceReference.GetTranslatedString(ci);
于 2011-11-29T15:48:11.290 に答える