Как я могу прочитать встроенный.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");