Я создал интерфейсный вызов IAppResources
с помощью метода AddResourceDictionary(ResourceDictionary rd)
. Этот интерфейс использовался в модулях для загрузки ResourceDictionaries, и был реализован в приложении для получения словарей ресурсов и добавления их в MergedDictionaries приложения
Там может быть лучший выход, но у меня это сработало:)
Общий интерфейс
public interface IAppResources
{
void AddResourceDictionary(ResourceDictionary resourceDictionary);
}
Модуль использует интерфейс для загрузки ресурсов
[ImportingConstructor]
public MyModule(IAppResources appResources)
{
appResources.AddResourceDictionary(new MyModuleResources());
}
Приложение реализует интерфейс для загрузки ресурсов
[Export(typeof(IAppResources ))]
public class AppResources: IAppResources
{
#region IAppResources Members
void IAppResources.AddResourceDictionary(ResourceDictionary resource)
{
App.Current.MainWindow.Resources.MergedDictionaries.Add(resource);
}
#endregion
}