Tys*_*Tys 2 .net asp.net resx resource-files
我有这个功能,它可以从这个名为OkayMessages的特定资源文件中获取翻译的值.
public static string GetResourceString(string resourceKey){
ResourceManager resourceManager = Resources.OkayMessages.ResourceManager;
return resourceManager.GetString(resourceKey);
}
Run Code Online (Sandbox Code Playgroud)
但我有超过1个资源文件,我希望这个函数也从这些文件中获取值..只是,我在动态/编程选择正确的资源(经理)时遇到了麻烦.我试图使用下面的代码,以及一些变体,但我总是得到一个错误.
public static string GetResourceString(string resourceFile, string resourceKey){
ResourceManager resourceManager = new System.Resources.ResourceManager("Resources." + resourceFile, Assembly.GetExecutingAssembly());
return resourceManager.GetString(resourceKey);
}
Run Code Online (Sandbox Code Playgroud)
我大部分时间都犯的错误是:找不到适合指定文化或中性文化的资源.确保"Resources.OkayMessages.resources"已正确嵌入或链接到程序集中.
更新:我正在使用\ App_GlobalResources \文件夹作为我的资源文件,似乎这就是问题所在.当我将资源文件放在项目的根目录中时,我可以毫无问题地初始化ResourceManager.
在错误的方向搜索了一段时间之后,我才找到了解决这个问题的最简单的答案.事实证明,有一种方法叫做GetGlobalResourceObject
.
所以在我的情况下,我现在使用这行代码完成所有操作:
GetGlobalResourceObject("OkayMessages", "PasswordChanged").ToString();
Run Code Online (Sandbox Code Playgroud)