Silverlight PRISM Создание пользовательского каталога модулей - PullRequest
1 голос
/ 19 октября 2011

Я создал приложение silverlight с PRISM и MEF. Есть ли способ заполнить каталог модулей через какой-либо веб-сервис или вызов базы данных? Пример, показанный в документации PRISM, получает информацию о модуле через файл XAP, который включен в проект Shell. В моем случае мне нужно получить этот список из какой-то службы. Я прочитал несколько статей, в которых предлагалось создать собственный ModuleCatalog, который реализует IModuleCatalog.

Я не могу найти ни одного примера или фрагмента кода о том, как действовать. Любые предложения о том, как это сделать?

Спасибо, Дипак

1 Ответ

1 голос
/ 21 октября 2011

Получил решение для этого требования.Чтобы загрузить модуль OnDemand во время выполнения, в каталог необходимо добавить объект Информация о модуле

            ModuleInfo moduleInfo = new ModuleInfo();
            moduleInfo.ModuleName = item.Name;
            moduleInfo.ModuleType = item.Type;
            moduleInfo.Ref = item.Reference;
            ModuleCatalog.AddModule(moduleInfo);

Элемент, показанный в приведенном выше коде, заполняется с помощью вызова веб-службы, который обращается к базе данных и получаетимя, тип и ссылка (example.xap).

При этом успешно добавляется каталог модулей, на каталог модулей можно ссылаться в любой модели представления, просто импортировав это свойство, как показано ниже

    [Import(AllowRecomposition = false)]
    public IModuleManager ModuleManager;

    [Import(AllowRecomposition = false)]
    public IModuleCatalog ModuleCatalog;

Чтобы загрузить модуль во время нажатия кнопки или любого другого события, просто вызовите ModuleManager.LoadModule (YourModuleName);и это все, он будет доступен для использования.

...