Как я могу прочитать встроенный.resx в другой сборке

У меня есть некоторые библиотеки в моем проекте, которые содержат только много файлов.resx в качестве встроенных ресурсов. В каждом проекте файлы.resx помещаются в разные папки. Свойство "Пространство имен пользовательских инструментов" для всех задается для пространства имен каждого проекта. Когда я пытаюсь использовать ResourceManager чтобы получить строку, я получаю ошибку, что, например, "MyTemplate.resources" не найден, но у меня есть только "MyTemplate.resx" в DLL.

Как я могу получить доступ к своим ресурсам?

new ResourceManager(typeof(MyTemplate.resx)).GetString("FirstNameTooltip");

Как я уже сказал в комментарии ниже, ресурсы динамически меняются. и у меня нет прямого доступа к его свойствам.

2 ответа

Вот как я обычно делаю:

string mystring = YourResourceNamespace.MyTemplate.FirstNameTooltip;

Если вы не знаете napespace, щелкните по.resx и дважды щелкните по Designer.cs, затем проверьте пространство имен, все ключевые слова определены как простая статическая переменная с помощью gettor, поэтому просто вызывайте их.

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

надеюсь, это поможет

Сначала вам нужно загрузить сборку:

Assembly ressourceAssembly = Assembly.Load("ResourceAssembly");

(Есть несколько проблем, с которыми вы можете столкнуться при этом. Прочтите о загрузке динамической сборки конкретно.)

Затем создайте менеджер ресурсов:

ResourceManager myManager = new 
   ResourceManager("<default namespace>.<Resx-Folder>.<Resx-File>", ressourceAssembly);

Затем загрузите строку:

myManager.GetString("FirstNameTooltip");
Другие вопросы по тегам