如何阅读全局资源文件

问题描述:

我在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

试图改变当前文化的地方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")); 
+0

“Resources.Strings”不是我访问,请介绍CURRENCYSYMBOL是什么? – 2014-10-07 06:51:58

+0

“CurrencySymbol”只是您持有该值的变量。我正在更新答案。 – 2014-10-07 06:54:36

+0

但仍然Resources.Strings我无法访问。我正在添加一个屏幕截图。请参见问题面板 – 2014-10-07 06:57:04

访问修饰符默认为内部。你使用过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'