2011-10-25 12 views

Trả lời

4

Trong tệp Global.asax bạn có thể đặt văn hóa hiện tại, ngay cả khi dịch vụ web hoặc trang web của nó.

// 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); 
    } 
} 

Bạn đang thay đổi yêu cầu của bạn, tuy nhiên Session đối tượng sẽ không có sẵn trong Begin_Request phương pháp, bạn có thể làm điều này trong phương pháp web của bạn.

[WebMethod] 
public static string MyWebMethod() 
{ 
    String culture = Session["MyCurrentCulutre"] as String; 

    System.Threading.Thread.CurrentThread.CurrentCulture = 
     System.Globalization.CultureInfo.CreateSpecificCulture(culture); 

    return "My results"; 
} 
+0

InitializeCulture() là phương pháp trang không phải là phương thức System.Web.Services.WebService. – rtcardoso

+1

@Waqas Raja, Bạn có thể đưa ra một exmple miễn phí từ cuộc sống thực tại sao tôi lại muốn làm điều đó? cho phép nói im từ israel và iis là trong chúng ta ... bạn có thể cho ví dụ? –

+0

Hãy tưởng tượng rằng tôi lưu ngôn ngữ người dùng ưa thích trong phiên. Sau đó, javascript của tôi thực hiện cuộc gọi webservice. Trong phản hồi, tôi muốn gửi thư người dùng bằng ngôn ngữ ưa thích của người dùng ... – rtcardoso