错误信息访问asp.net全球资源串编程

问题描述:

尝试访问这样一个特定的本地化资源文件WebResource.en.us这是使用下面的代码位于我App_GlobalResources文件夹:错误信息访问asp.net全球资源串编程

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指令

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

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

  • WebResource.resx
  • WebResource.en美。 resx

使用此设置和代码 - 我的调试器打印值没有任何问题。 当删除WebResource.resx(我的默认资源文件)相同的代码会抛出一个异常

我会假设你已经添加默认的resx文件删除明确的文化符号在GetGlobalResourceObject(... ..)。

更新:添加一些代码来访问特定的RESX文化文件 又见MSDN

+0

是的,我已经试过类似的东西和它的工作就像你说的,如果我删除的文化符号,但我需要有这样因为我有多个需要访问的文化资源文件。 – cyberbobcat

+0

如果您需要访问其他文化的resorce文件,请更改文化。当前的文化是B时,访问A文化资源文件的原因是什么? –

+0

原因是我需要访问资源字符串,该资源字符串包含每个国家(存储在该国家的本地化资源文件中)的分销商地址详细信息,这些国家需要独立于所选文化区域进行访问。所以,即使选择的文化是英国,用户可能需要知道美国的分销商详情。答案可能是将这些详细信息保存在web.config中的应用程序级别变量中,而不是我认为的资源文件中。 – cyberbobcat