как я могу использовать файл ресурсов resw внутри библиотеки классов UWP

#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 /…