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

C# 以编程方式访问asp.net全局资源字符串时出错消息,c#,asp.net,resources,C#,Asp.net,Resources,尝试使用以下代码访问特定的本地化资源文件,例如WebResource.en.us,该文件位于myApp\u GlobalResources文件夹中: string resData = GetGlobalResourceObject("WebResource.en.us", "SomeResource").ToString(); 但这一直给我以下错误: 找不到任何适合指定区域性的资源,或 中立文化。确保“Resources.WebResource.en-us.Resources” 已正确嵌入或链

尝试使用以下代码访问特定的本地化资源文件,例如
WebResource.en.us
,该文件位于my
App\u GlobalResources
文件夹中:

string resData = GetGlobalResourceObject("WebResource.en.us", "SomeResource").ToString();
但这一直给我以下错误:

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


有什么想法吗?

我尝试了以下代码

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" .....  %>

My App_GlobalResources文件夹包含两个文件

  • WebResource.resx
  • WebResource.en-US.resx
使用此设置和代码-我的调试器毫无问题地打印了值。 当删除WebResource.resx(我的默认ressource文件)时,相同的代码会抛出一个异常

我假设您必须在GetGlobalResourceObject(…,…)中添加一个默认的resx文件,并删除显式区域性符号

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

是的,我尝试过类似的方法,如果我删除区域性符号,它确实会像您所说的那样起作用,但我需要这样做,因为我需要访问多个区域性资源文件。如果您需要访问另一个区域性的资源文件,请更改区域性。当当前区域性为B时,访问区域性a的资源文件的原因可能是什么?原因是我需要访问一个资源字符串,该字符串包含每个国家/地区(存储在该国家/地区的本地化资源文件中)的分销商地址详细信息,需要独立于所选区域性进行访问。因此,即使选择的文化是英国,用户也可能需要了解我们的经销商详细信息。答案可能是将这些细节保存在web.config中的应用程序级变量中,而不是我认为的资源文件中。