ASP.NET Web服务本地化

ASP.NET Web服务本地化,asp.net,localization,web-services,Asp.net,Localization,Web Services,我想在ASP.NET应用程序中本地化Web服务 我可以编写以下代码来检测首选客户端区域性: CultureInfo culture = null; if (Request.UserLanguages!=null && Request.UserLanguages.Length>0) { string lang = Request.UserLanguages[0]; if (!String.IsNullOrEmpty(lang)) { try { c

我想在ASP.NET应用程序中本地化Web服务

我可以编写以下代码来检测首选客户端区域性:

CultureInfo culture = null;
if (Request.UserLanguages!=null && Request.UserLanguages.Length>0) {
  string lang = Request.UserLanguages[0];
  if (!String.IsNullOrEmpty(lang)) {
    try {
      culture = new CultureInfo(lang) ;
    }
    catch {}
  }
}
并使用此表达式从资源中获取字符串:

WebResources.ResourceManager.GetString(stringName, culture);
但我想使用类似于页面指令属性的东西:

Culture="Auto" UICulture="Auto"

有可能吗?

首先,这一切都取决于客户端传输的头文件,UserLanguages集合从中收集信息。您服务的大多数消费者(如果他们不是浏览器)将不会传输该信息

其次,不,我认为不可能自动完成,但是您可以在HttpContext.Items集合中写入一些值,然后结束

public string GetResource(string Key)
{
    culture = HttpContext.Items["UserLanguage"];
    WebResources.ResourceManager.GetString(stringName, culture);
}
那么您的代码将只显示:-

GetResource("Blah");
谢谢

菲尔