У меня есть два файла .resx для локализации - Global.en.resx и Global.resx (ru). Пытаясь получить значение по имени с помощью ResourceManager, я столкнулся с проблемой: значение отображается только на русском языке.Невозможно получить значение из файла ресурсов с помощью отражения
ResourceManager rm = new ResourceManager(resourceType.FullName, resourceType.Assembly);
ResourceSet rs = rm.GetResourceSet(CultureInfo.CurrentCulture, true, true);
foreach (DictionaryEntry d in rs)
{
if (d.Key.ToString() == propName) displayName = (string)d.Value;
}
resourceType - resources class, propName - название недвижимости, которую я хочу отобразить. Пожалуйста, помогите мне
Является ли нынешняя культура английской или русской? Идя по именам ваших файлов ресурсов, я бы предположил, что текущая (стандартная) культура - русская ... –
Я меняю текущую культуру, и она отлично работает, когда я просто показываю ее из представления с помощью @ MyResources.Global.PropertyName. Но когда я пытаюсь получить значение с помощью отражения, он терпит неудачу, как описано выше. – ivanblin
Его сбивает с толку, потому что пример, который вы опубликовали, вообще не имеет никакого отражения в нем, так это вы используете отражение? В приведенном выше примере вы получаете ** текущую ** культуру, которая, вероятно, является русской, и она будет работать, если вы измените ** текущую ** культуру, но если вы хотите вернуть другую культуру, вы не сможете перейдите в 'CultureInfo.CurrentCulture' к' GetResourceSet', вам нужно создать английскую культуру и передать это. –