asp.net Webサービス呼び出しでスレッドカルチャを動的に初期化する方法を誰か教えてもらえますか?
私のaspxページには、InitializeCulture()メソッドをオーバーライドするベースページがあります。
選択した言語の値がセッション状態に保存されることに注意してください。
asp.net Webサービス呼び出しでスレッドカルチャを動的に初期化する方法を誰か教えてもらえますか?
私のaspxページには、InitializeCulture()メソッドをオーバーライドするベースページがあります。
選択した言語の値がセッション状態に保存されることに注意してください。
ファイルではGlobal.asax
、Web サービスまたは Web ページであっても、現在のカルチャを設定できます。
// PreRequestHandlerExecute occurs after initialization of Session
void Application_PreRequestHandlerExecute(Object Sender, EventArgs e)
{
// check if session is required for the request
// as .css don't require session and accessing session will throw exception
if (Context.Handler is IRequiresSessionState
|| Context.Handler is IReadOnlySessionState)
{
string culture = "en-US";
if (Session["MyCurrentCulutre"] != null)
{
culture = Session["MyCurrentCulutre"] as String;
}
System.Threading.Thread.CurrentThread.CurrentCulture =
System.Globalization.CultureInfo.CreateSpecificCulture(culture);
}
}
要件を変更していますが、Session
オブジェクトはメソッドで使用Begin_Request
できません。Web メソッドでこれを行うことができます。
[WebMethod]
public static string MyWebMethod()
{
String culture = Session["MyCurrentCulutre"] as String;
System.Threading.Thread.CurrentThread.CurrentCulture =
System.Globalization.CultureInfo.CreateSpecificCulture(culture);
return "My results";
}