2014-10-27 40 views
1

在某些情况下,我们的项目我们必须忽略当前文化应用 和英语获取资源。只有英语如何从特定的资源文件的字符串资源在C#

我们基本上做到像所有的语言

<label>@ModelEntities.Properties.Resource.Gender</label> 

怎么可能得到?

我假设我们不知何故创建了一些参考Resource.resx

我用

ResourceManager rm = new ResourceManager("Resource.Strings", 
        Assembly.GetAssembly(typeof(ModelEntities.Properties.Resource))); 
    var s = rm.GetString("Age"); 

但好像不工作。

谢谢!

回答

2

我找到了可行的解决方案。

我们所有的资源文件,第一种是像结束

Resource.resx

,而不是像Resources.resx

而在第二,我们有一个单独的程序集资源:ModelEntities

所以工作代码如下

var resourceManager = new ResourceManager(typeof(ModelEntities.Properties.Resource)); 
var genderString = resourceManager.GetString("Gender", ci); 
+1

This works.Thank you – 2017-05-16 09:41:52

4

您可以使用资源管理器类click here for more info about the class

System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-GB"); 
ResourceManager resourceManager = new ResourceManager("YourResource", Assembly.GetExecutingAssembly()); 
string bodyResource = resourceManager.GetString("yourText", ci); 
+0

你为什么帧'C#'代码到这样的片段? – Sinatr 2014-10-27 16:00:11

+0

我的猜测是他没有意识到代码片段是什么,因为他是一个相当新的用户。我编辑了答案并用一个简单的代码块取代了 – 2014-10-27 16:14:04

+0

确实我是一个新用户。使用Tidy功能。感谢Anthony Shaw – 4nis 2014-10-27 16:17:26

3

一个简单的方法:

YorResourceName.ResourceManager.GetString("ResourceKeyName", System.Globalization.CultureInfo.GetCultureInfo("en-US"))