在 WPF、C# 中使用文化访问资源文件
Posted
技术标签:
【中文标题】在 WPF、C# 中使用文化访问资源文件【英文标题】:Accessing Resource File with Culture in WPF, C# 【发布时间】:2016-03-02 18:00:59 【问题描述】:我正在编写一个应用程序,其中的文本块可以显示不同语言的 cmets。我正在尝试使用我真的不明白的“文化”。
我关注了一些视频,但仍然收到相同的错误消息:
这是我添加的命名空间:
using System.Reflection;
using System.Globalization;
using System.Resources;
我只是在添加 switch 语句之前测试这个概念:
CultureInfo cult = CultureInfo.CreateSpecificCulture("en");
Assembly lingua = Assembly.Load("Bailing Calculator");
ResourceManager rm = new ResourceManager("Bailing Calculator.Resources.Res", lingua);
tbkPHDiameter.Text = rm.GetString("phDia", cult);
我只是没有给出 ResourceManager 的正确路径吗?感谢随之而来的教育攻势!
【问题讨论】:
【参考方案1】:将您的代码更新为:
CultureInfo cult = CultureInfo.CreateSpecificCulture("en-US");
Assembly lingua = Assembly.Load("Bailing Calculator");
ResourceManager rm = new ResourceManager(string.Format("Bailing_Calculator.Resources.0",cult.Name), lingua);
tbkPHDiameter.Text = rm.GetString("phDia");
并将资源文件名称更新为您的目标文化名称:
所以文件名看起来像:en-US
【讨论】:
我已经复制并粘贴了您的代码。我仍然收到同样的警报。 您是否将解决方案资源管理器中的资源文件从 en.resx 重命名为 en-Us.resx?我也更新了答案,因为命名空间不支持空间。 我做了调整。一样的报警。构建操作应该设置为什么? 添加新项目时默认设置为嵌入式资源 就是这样!在试图弄清楚这件事时,我已经使用了构建类型。感谢您的代码!以上是关于在 WPF、C# 中使用文化访问资源文件的主要内容,如果未能解决你的问题,请参考以下文章