如何从C#中的特定资源文件中获取字符串资源

Dev*_*per 2 .net c# asp.net-mvc localization

在我们项目中的某些情况下,我们必须忽略当前的应用程序文化并获取英语资源。

基本上,我们对所有语言都这样做

<label>@ModelEntities.Properties.Resource.Gender</label>
Run Code Online (Sandbox Code Playgroud)

怎么可能只用英语?

我假设我们以某种方式创建了一些对Resource.resx?

我用过了

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

但它似乎不起作用。

谢谢!

Dev*_*per 6

我找到了有效的解决方案。

首先,我们的资源文件的结尾是

资源.resx

并且不喜欢 Resources.resx

其次,我们在单独的程序集中有资源:ModelEntities

所以工作代码如下

var resourceManager = new ResourceManager(typeof(ModelEntities.Properties.Resource)); 
var genderString = resourceManager.GetString("Gender", ci);
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用资源管理器类单击此处了解有关该类的更多信息

System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-GB"); 
ResourceManager resourceManager = new ResourceManager("YourResource", Assembly.GetExecutingAssembly()); 
string bodyResource = resourceManager.GetString("yourText", ci);
Run Code Online (Sandbox Code Playgroud)


小智 5

一个简单的方法:

YorResourceName.ResourceManager.GetString("ResourceKeyName", System.Globalization.CultureInfo.GetCultureInfo("en-US"))
Run Code Online (Sandbox Code Playgroud)