Динамическая ссылка на файлы ресурсов в C # - PullRequest
14 голосов
/ 27 августа 2008

У меня есть приложение, в котором я выполняю локализацию.

Теперь мне нужно динамически ссылаться на имя в файле ресурсов.

Предположим, у меня есть файл ресурсов с именем Login.resx, несколько строк: foo = "hello", bar = "cruel" и baz = "world"

обычно я буду называть: Строковый результат = Login.foo; и результат == "привет";

Моя проблема в том, что во время кода я не знаю, хочу ли я ссылаться на foo, bar или baz - у меня есть строка, которая содержит либо "foo", "bar", либо "baz"

Мне нужно что-то вроде:

Войти [ "Foo"];

Кто-нибудь знает, есть ли способ динамически ссылаться на строку в файле ресурсов?

Ответы [ 2 ]

20 голосов
/ 27 августа 2008

Вам нужно будет скопировать ResourceManager для Login.resx:

var resman = new System.Resources.ResourceManager(
    "RootNamespace.Login",
    System.Reflection.Assembly.GetExecutingAssembly()
)
var text = resman.GetString("resname");

Может быть полезно посмотреть на сгенерированный код в файлах выделенного кода файлов ресурсов, созданных в среде IDE. Эти файлы в основном содержат свойства только для чтения для каждого ресурса, который отправляет запрос внутреннему менеджеру ресурсов.

2 голосов
/ 21 мая 2010

Если вы поместите свой файл ресурсов в папку App_GlobalResources, как я, вам нужно использовать

глобальный :: System.Resources.ResourceManager temp = new глобальный :: System.Resources.ResourceManager ( "RootNamespace.Login", глобальный :: System.Reflection.Assembly.Load ( "App_GlobalResources"));

Мне понадобилось время, чтобы понять это. Надеюсь, это кому-нибудь поможет. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...