HttpContext.GetGlobalResourceObject返回null,但该值可通过参考资料获得

时间:2014-04-24 16:43:46

标签: asp.net-mvc embedded-resource

我正在尝试使用 HttpContext.GetGlobalResourceObject从resx资源文件中访问值。

资源文件位于名为Resources的文件夹中,并且根据K.Scotton Allen将CustomTool属性设置为PublicResXFileCodeGenerator:http://odetocode.com/blogs/scott/archive/2009/07/16/resource-files-and-asp-net-mvc-projects.aspx

正在构建和嵌入资源(我可以通过ILSpy在程序集中看到),我可以使用以下代码访问代码中的值:

var b = MyApp.Resources.GlobalStrings.VendorUITitle;

但是尝试通过 GetGlobalResourceObject访问它们总是返回null

var s = HttpContext.GetGlobalResourceObject("MyApp.Resources.GlobalStrings", "VendorUITitle");

2 个答案:

答案 0 :(得分:1)

我能够通过将资源文件的自定义工具设置为 GlobalResourceProxyGenerator

来解决此问题

构建操作内容复制到输出目录属性为始终复制

Resource File Properties

如果我没有这样做,那么当我发布到生产调用 HttpContext.GetGlobalResourceObject 时,总是会返回null。

答案 1 :(得分:0)

  1. 在App_GlobalResources下创建资源文件
  2. 将构建操作设置为内容
  3. 将“复制到输出目录”设置为“不复制”
  4. 确保已在部署的应用程序中拥有App_GlobalResources文件夹