首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态初始化ResourceManager

动态初始化ResourceManager
EN

Stack Overflow用户
提问于 2012-06-24 21:10:05
回答 2查看 9.1K关注 0票数 2

我有这个函数,它可以很好地从这个名为OkayMessages的特定资源文件中获得一个转换后的值。

代码语言:javascript
复制
public static string GetResourceString(string resourceKey){
  ResourceManager resourceManager = Resources.OkayMessages.ResourceManager;
  return resourceManager.GetString(resourceKey);
}

但是我有超过一个资源文件,我希望这个函数也能从这些文件中得到值。只是,我在动态/编程地选择正确的资源(管理器)时遇到了问题。我尝试使用下面的代码,以及其中的一些变体,但我总是会遇到错误。

代码语言:javascript
复制
public static string GetResourceString(string resourceFile, string resourceKey){
  ResourceManager resourceManager = new System.Resources.ResourceManager("Resources." + resourceFile, Assembly.GetExecutingAssembly());
  return resourceManager.GetString(resourceKey);
}

大多数情况下,我遇到的错误是:找不到适合指定区域性或中性区域性的任何资源。确保"Resources.OkayMessages.resources“被正确嵌入或链接到程序集中。

更新:--我使用\App_GlobalResources\文件夹来处理我的资源文件,这似乎就是问题所在。当我将一个资源文件放在我的项目的根目录中时,我可以没有问题地初始化一个ResourceManager。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-08 15:57:54

在错误的方向搜索了一段时间后,我找到了这个问题最简单的答案。结果是有一种叫做GetGlobalResourceObject的方法。

因此,在我的例子中,我现在使用这一行代码来完成所有的工作:

代码语言:javascript
复制
GetGlobalResourceObject("OkayMessages", "PasswordChanged").ToString();
票数 5
EN

Stack Overflow用户

发布于 2012-07-08 11:38:09

仔细阅读这个文章,您会发现您需要指定正确的资源命名空间。这是你的问题。如果OkayResources.resx驻留在项目根文件夹中,下面是工作示例:

代码语言:javascript
复制
using System.Reflection;
using System.Resources;
using System.Web.UI;

namespace WebApplication1
{
    public partial class _Default : Page
    {

        public _Default()
        {
            var result = GetResourceString("OkayResources", "SomeKey");
        }

        private static string GetResourceString(string resourceFileName, string key)
        {
            var resourceName = "WebApplication1." + resourceFileName;
            var resourceManager = new ResourceManager(resourceName, Assembly.GetExecutingAssembly());
            return resourceManager.GetString(key);
        }
    }
}

如果将资源文件放入参考资料文件夹,则必须更新资源命名空间:

代码语言:javascript
复制
var resourceName = "WebApplication1.Resources." + resourceFileName;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11181211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档