如何在ASP.NET中使用ResourceManager和资源文件
本文关键字:ResourceManager 资源 源文件 ASP NET | 更新日期: 2023-09-27 18:15:15
我有以下方法:
private void SetResources(string filename = ResxFileName)
{
if (_resourceManager == null)
{
_resourceManager = new ResourceManager(filename + ".Strings", GetType().Assembly);
}
}
如果ResxFileName = "Example", Example. strings .resx需要在项目中找到才能访问它?我已经尝试将其放在解决方案资源管理器下的项目属性中,但是每当调用GetString("ExampleString")并且ExampleString作为名称存在并且在Example.Strings中具有值时。resx,我得到以下系统。例外:
找不到适合指定区域性或中性区域性的任何资源。确保Example.Strings。资源'"在编译时被正确嵌入或链接到程序集'"ProjectName'"中,或者所需的所有附属程序集都是可加载的并且是完全签名的。
我已经尝试运行自定义工具,并确保构建操作设置为"嵌入式资源",正如其他发布类似问题的人所提到的那样。这些解决方案不解决了异常。
看起来你需要翻转文件名,Strings
将是文件名。
至于在哪里放置文件,这取决于,对于一个web项目,它应该在App_GlobalResources
试试这个
private void SetResources(string filename = ResxFileName)
{
if (_resourceManager == null)
{
Assembly assembly = System.Reflection.Assembly.Load("App_GlobalResources");
_resourceManager = new ResourceManager("Resources." + filename, assembly);
}
}
例如将Strings.en-US
, Strings.fr
资源文件放在App_GlobalResources
文件夹中。
我不知道该添加什么,这是正确的做法,为了时间的缘故,我为您创建了一个演示项目。
演示下载
查看HomeController
内部的示例