Расширение модульного подхода PRISM (CompositeWPF) - PullRequest
1 голос
/ 21 января 2010

Модульный механизм родной PRISM поддерживает загрузку модулей по пути к сборке, включая этот модуль. Я хочу иметь возможность хранить представления модулей (XAML) в базе данных, чтобы конечный пользователь мог их изменять и настраивать. База данных выбрана, так как она проще для хранения и извлечения информации и не требует перекомпиляции и создания двоичных файлов. Проблема в том, что View состоит из XAML и codebehind, и нам нужно разделить (?) Их и сохранить отдельно, а когда они нам понадобятся, мы должны указать их и загрузить в модуль (с отражением или чем-то еще?), Но я не знаю как а если это вообще возможно?

1 Ответ

1 голос
/ 21 января 2010

Я вижу два варианта здесь. Легкий путь или трудный путь.

Самый простой способ - иметь все сборки на диске и иметь каталог модулей PRISM, который загружает их в зависимости от настроек из базы данных.

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

Чтобы перезагрузить сборку из записи базы данных, вы можете использовать тот же механизм, что и DirectoryModuleCatalog. Скопируйте этот класс и измените его так, чтобы он загружал сборки из потока, поступающего из БД, а не из файла из каталога.

...