Перечисление содержимого встроенного ресурса .NET во время выполнения - PullRequest
1 голос
/ 16 апреля 2009

У меня есть файл .resx, который содержит некоторые строковые ресурсы для моего проекта. Во время выполнения я хотел бы прочитать все ресурсы, определенные в этом файле, и сохранить их в контейнере. Причина не важна.

Я читал о классе ResourceReader, который работает с двоичными файлами .resource. У меня сложилось впечатление, что .resx преобразуется в двоичный формат при сборке и встраивается в сборку. Это правда, или мне нужно вручную сгенерировать его с помощью resgen? Если мне нужно сгенерировать его вручную, как мне добавить его в мой проект VS, внедрить его в сборку и получить к нему доступ во время выполнения?

Короче говоря, как я могу получить доступ к ресурсам, определенным в .resx во время выполнения, используя ResourceReader?

1 Ответ

4 голосов
/ 16 апреля 2009

Вы можете использовать ResourceReader.GetEnumerator () , чтобы получить перечислитель для ваших ресурсов.

Если вы пытаетесь читать файлы .resx напрямую, вы можете рассмотреть возможность использования ResXResourceReader вместо ResourceReader.

Если вы пытаетесь читать из скомпилированных в .resources (resx -> resources), вам нужно соответствующим образом изменить имя. Допустим, вы называете свой .resX файл «MyRes.resx», который вы хотите использовать:

var resManager = new ResourceManager("MyRes.resources");

Если файл resx находится в сателлитной сборке, он добавит имя проекта, например: ("MyProject.MyRes.resources");

Если вы используете локализацию, она вам тоже понадобится: ("MyProject.MyRes.en-GB.resources");

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