gpt4 book ai didi

c# - 如何在 ASP.NET 中使用 ResourceManager 和资源文件?

转载 作者:太空宇宙 更新时间:2023-11-03 23:29:15 25 4
gpt4 key购买 nike

我有以下方法:

    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 中具有值时,我都会得到以下系统。异常:

Could not find any resources appropriate for the specified culture or the neutral culture. Make sure \"Example.Strings.resources\" was correctly embedded or linked into assembly \"ProjectName\" at compile time, or that all the satellite assemblies required are loadable and fully signed.

我已尝试运行自定义工具并确保构建操作设置为“嵌入式资源”,正如其他发布过类似问题的人所提到的那样。这些解决方案没有解决异常。

最佳答案

看起来你需要翻转文件名,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-USStrings.fr 资源文件放在 App_GlobalResources 文件夹中。

编辑:

我不知道要添加什么,这是正确的做法,为了节省时间,我为您创建了一个演示项目。

DEMO DOWNLOAD

查看 HomeController 的内部以查看示例。

关于c# - 如何在 ASP.NET 中使用 ResourceManager 和资源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32871207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com