Вопрос

Для целей локализации в 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();

Операция кажется довольно дорогостоящей, следующей задачей: загрузка ресурсанажера в ресурс.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top