Загрузка модуля по требованию с помощью MEF Prism и Silverlight - PullRequest
1 голос
/ 13 сентября 2011

Здравствуйте, у меня есть приложение Silverlight, которое я разработал с использованием шаблонов MVVM и Prism.

В нем есть несколько модулей, которые я хотел бы загрузить только после аутентификации пользователя.

С этой целью я создал модуль входа в систему, который принимает учетные данные клиентов и обрабатывает аутентификацию.После аутентификации пользователя я бы хотел, чтобы MEF загрузил остальные модули.Моя проблема в том, как это сделать?

Каталог модулей определен в xaml, и все модули, кроме модуля входа в систему, настроены на инициализацию OnDemand.Насколько я знаю, модули могут быть загружены только из оболочки, что не работает в моем случае, поскольку вызов для их загрузки будет поступать из viewmodel loginmodules.

Любые идеи будут с благодарностьюСпасибо.

1 Ответ

2 голосов
/ 13 сентября 2011

Prism предоставляет IModuleManager, который вы можете импортировать через MEF или Unity, а затем использовать для загрузки модулей.

    [ImportingConstructor]
    public MyViewModel(IModuleManager moduleManager)
    {
        this.moduleManager = moduleManager;
        this.moduleManager.LoadModule("ModuleA");
    }
...