Получить все ResourceManagers в сборке - PullRequest
1 голос
/ 16 декабря 2010

Для целей локализации в Wpf я хотел бы перебрать все ResourceManager в сборке.

Причина, по которой я хочу это сделать, заключается в том, что у меня есть расширение разметки xaml для перевода. Это расширение разметки должно создавать экземпляр ResourceManager с использованием полностью определенного пространства имен и имени сборки.

Сборка по умолчанию - это сборка, в которой находится файл xaml, который можно получить следующим образом:

var rootObjectProvider = serviceProvider.GetService(typeof(IRootObjectProvider)) as IRootObjectProvider;
var root = rootObjectProvider.RootObject;
var assembly = ass = Assembly.GetAssembly(root.GetType());

Когда задан относительный путь, необходимо добавить путь по умолчанию, но это VS, а не сборка. Большинство сборок имеют то же имя, что и пространство имен по умолчанию, но это не всегда так. Поэтому я хотел бы перебрать все ResourceManager в Assembly и попытаться сопоставить последнюю часть их пространства имен с путем словаря, указанным для расширения разметки.

1 Ответ

0 голосов
/ 16 декабря 2010

Хорошо, я узнал, как это сделать:

var resources = assembly.GetManifestResourceNames();

Операция выглядит довольно дорогой, но следующая проблема: загрузка ResourceManager в ResourceDictionary ..

...