2014-10-27 4 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

Это работает.Спасибо! –

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

+0

Я предполагаю, что он не понимал, для каких фрагментов кода, так как он довольно новый пользователь. Я отредактировал ответ и заменил его простым блоком кода –

+0

Действительно, я новый пользователь. Использовал функциональность Tidy. Спасибо Anthony Shaw – 4nis

3

Простой способ:

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