如何阅读全局资源文件
问题描述:
我在c#中有一个基于窗口的应用程序。我在哪里显示一些基于所选语言的消息框。它与表单级别的资源正常工作,但如果我想访问全局资源文件(项目级别),该怎么办。如何阅读全局资源文件
ResourceManager res_man = new ResourceManager("Resources",typeof(Form2).Assembly);
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("ar-SA");
string s = res_man.GetString("String1");
MessageBox.Show("Arabic-" + s);
我试过,但任何怎么不工作
有关更新ANS
答
试图改变当前文化的地方UI文化 -
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("ar-SA");
我使用以下代码从全球资源中获取特定文化的具体价值 -
ResourceManager myManager = new ResourceManager(typeof(Resources.Strings));
String currencySymbol = myManager.GetString("Currency", CultureInfo.GetCultureInfo("en-GB"));
答
访问修饰符默认为内部。你使用过PublicResXFileCodeGenerator吗?
当您在Visual Studio中打开RESX文件时,可以将Access Modifier设置为公共。有一个下拉框可以在更改访问修饰符的表单顶部找到。
之后,你将能够访问:
var resxManager = new ResourceManager(typeof(Resource));
var currentString = resxManager.GetString("Practitioner", CultureInfo.GetCultureInfo("en-US"));
这里可能是一个相关的问题:Visual Studio - Resx File default 'internal' to 'public'
“Resources.Strings”不是我访问,请介绍CURRENCYSYMBOL是什么? – 2014-10-07 06:51:58
“CurrencySymbol”只是您持有该值的变量。我正在更新答案。 – 2014-10-07 06:54:36
但仍然Resources.Strings我无法访问。我正在添加一个屏幕截图。请参见问题面板 – 2014-10-07 06:57:04