以编程方式访问asp.net全局资源字符串时出错

本文关键字:资源 字符串 出错 全局 net 编程 方式 访问 asp | 更新日期: 2023-09-27 18:15:33

尝试使用以下代码访问位于App_GlobalResources文件夹中的特定本地化资源文件(如WebResource.en.us(:

string resData = GetGlobalResourceObject("WebResource.en.us", "SomeResource").ToString();

但这一直给我以下错误:

找不到任何适合指定区域性或的资源中立文化。确保"Resources.WebResource.enus.Resources"已正确嵌入或链接到程序集中编译时为"App_GlobalResources.bpqqrnv4"。

有什么想法吗?

以编程方式访问asp.net全局资源字符串时出错

我尝试了以下代码

Page_Load(....)
{
   /// note - i did NOT mention the culture when accesing my resourceFiles
   Debug.WriteLineIf(
       GetGlobalResourceObject("WebResource", "someResource")!=null,
       GetGlobalResourceObject("WebResource", "someResource").ToString());
   /// accessing a culture specific resource without changing Page Culture
   CultureInfo yourCI = new CultureInfo("en-US");
   Debug.WriteLine(
      HttpContext.GetGlobalResourceObject(
          "WebResource", 
          "someResource", 
          yourCI).ToString());
}

我的页面指令

<% Page Culture="en-US" UICulture="en-US" .....  %>

我的App_GlobalResources文件夹包含两个文件

  • Web资源.resx
  • 网络资源.en-US.resx

使用这些设置和代码,我的调试器打印出的值没有任何问题。当删除WebResource.resx(我的默认资源文件(时,相同的代码会引发异常

我假设您必须添加默认resx文件删除GetGlobalResourceObject(…,..(中的显式区域性表示法

更新:添加了一些代码来访问特定的resx区域性文件另请参阅MSDN