Получить все ресурсы в собрании
-
10-10-2019 - |
Вопрос
Для целей локализации в WPF я хотел бы пройти через все ресурсы в сборке.
Причина, по которой я хочу это сделать, заключается в том, что у меня есть расширение разметки XAML. Это расширение разметки должно создать экземпляр ресурсанажера, используя полностью квалифицированное пространство имен и имя сборки.
Сборка по умолчанию - это сборка, в которой расположен файл XAML, в которой можно извлечь следующим образом:
var rootObjectProvider = serviceProvider.GetService(typeof(IRootObjectProvider)) as IRootObjectProvider;
var root = rootObjectProvider.RootObject;
var assembly = ass = Assembly.GetAssembly(root.GetType());
При предоставлении относительного пути путь по умолчанию должен быть приготовлен, но это не по сравнению с сборкой. Большинство сборков имеют то же имя, что и пространство имен по умолчанию, но это не всегда так. Поэтому я хотел бы пройти через всех ресурсов в сборке и попытаться сопоставить последнюю часть их пространства имен с помощью словарного пути, предоставленного расширению разметки.
Решение
Хорошо, я узнал, как это сделать:
var resources = assembly.GetManifestResourceNames();
Операция кажется довольно дорогостоящей, следующей задачей: загрузка ресурсанажера в ресурс.