#c# #uwp #class-library
#c# #uwp #class-library
Вопрос:
Я создаю проект библиотеки классов (Universal Windows UWP), который содержит и использует внутри некоторые файлы ресурсов .resw, но если они найдены в проекте библиотеки классов, они не загружаются во время выполнения dll из проектов, использующих dll. Все работает хорошо, только если я включаю файлы resw непосредственно в проекты, использующие эту dll, но я должен избегать этого.
Библиотека классов получает карту ресурсов таким образом (LocalizationLettersWords — это файл .resw, расположенный в проекте библиотеки классов)
ResourceMap lettersResourceMap = ResourceManager.Current.MainResourceMap.GetSubtree("LocalizationLettersWords");
но lettersResourceMap получает значение null.
Ответ №1:
В UWP ResourceLoader
класс используется для получения ресурсов программно. Итак, вы можете использовать это:
string resource1 = ResourceLoader.GetForCurrentView().GetString("YourKey");
но это не будет работать, когда оно используется в потоке, отличном от пользовательского интерфейса,. В этом случае вам следует использовать метод GetForViewIndependentUse
, например:
string resource2 = ResourceLoader.GetForViewIndependentUse().GetString("YourKey");
Вы можете прочитать больше об этом ResourceLoader
классе здесь .
Комментарии:
1. хорошо, но есть ли способ использовать ResourceMap и ResourceManager?
2. честно говоря, я не знаю, но если вам нужно загружать ресурсы из разных файлов, вы можете использовать GetForCurrentView(«fileName») или GetForViewIndependentUse(«fileName»)
3. или, может быть, вы могли бы попробовать это: social.msdn.microsoft.com/Forums/sqlserver/en-US /…