C# 如何在静态Webmethod字符串中获取重写的区域性

C# 如何在静态Webmethod字符串中获取重写的区域性,c#,asp.net,C#,Asp.net,我正在测试Aspx页面的当前语言,方法是覆盖基本页面(TEST.cs)中的当前区域性,如下所示: protected override void InitializeCulture() { Page.Culture = "French" Page.UICulture = "fr"; } 我还在App_GlobalResources中创建了4种不同的语言,包括法语 现在,任何包含以下代码并以TEST.cs作为其基本页的aspx页面都会以法语显示文本,不管浏览器语言设置是否为法语 <asp:

我正在测试Aspx页面的当前语言,方法是覆盖基本页面(TEST.cs)中的当前区域性,如下所示:

protected override void InitializeCulture()
{
Page.Culture = "French"
Page.UICulture = "fr";
}
我还在App_GlobalResources中创建了4种不同的语言,包括法语

现在,任何包含以下代码并以TEST.cs作为其基本页的aspx页面都会以法语显示文本,不管浏览器语言设置是否为法语

<asp:Label ID="Label" Runat="server" Text="<%$ Resources:LocalizedText, language %>"></asp:Label>
问题在于Resources.LocalizedText.language仅返回基于浏览器语言设置的语言,并且无法识别基页中InitializeCulture()的覆盖函数

如何解决此问题并在静态Webmethod中使用覆盖语言


提前感谢

在初始化文化中尝试设置线程文化,如下所示:

protected override void InitializeCulture()
{
    Page.Culture = "French"
    Page.UICulture = "fr";

    System.Threading.Thread.CurrentThread.CurrentCulture =
        System.Globalization.CultureInfo.CreateSpecificCulture("fr");
    System.Threading.Thread.CurrentThread.CurrentUICulture =
        System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR");
}

不。。。。它不起作用。我仍然在浏览器设置中设置语言…如果在InitializeCulture中设置断点,当您调用WebMethod时,应用程序停止或从未调用InitializeCulture?我通过在每个web方法中运行设置线程区域性的函数来解决此问题。。。。有更好的方法吗?这里的问题是您的WebMethod必须是静态的。如果这是您的一个选项,您可以使用中的headers属性发送带有ajax调用的language header。我想,在你的WebMethod中,你必须始终设置正确的文化。
protected override void InitializeCulture()
{
    Page.Culture = "French"
    Page.UICulture = "fr";

    System.Threading.Thread.CurrentThread.CurrentCulture =
        System.Globalization.CultureInfo.CreateSpecificCulture("fr");
    System.Threading.Thread.CurrentThread.CurrentUICulture =
        System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR");
}