如何读取全局资源文件

时间:2014-10-07 06:34:51

标签: c#

我在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 enter image description here

2 个答案:

答案 0 :(得分:1)

尝试改变当前文化而不是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"));

答案 1 :(得分:1)

默认情况下,访问修饰符是内部的。你使用过PublicResXFileCodeGenerator吗?

在Visual Studio中打开RESX文件时,可以将Access Modifier设置为public。可以在表单顶部找到一个下拉框,用于更改访问修饰符。

之后您将可以访问:

var resxManager = new ResourceManager(typeof(Resource));
var currentString = resxManager.GetString("Practitioner", CultureInfo.GetCultureInfo("en-US"));

以下是相关问题:Visual Studio - Resx File default 'internal' to 'public'