Организация нескольких составных приложений WPF для совместного использования одной оболочки - PullRequest
1 голос
/ 24 июня 2009

Как организовать несколько составных WPF-приложений, чтобы они совместно использовали один проект Shell, но заполняли свои каталоги модулей из разных файлов App.config?

Я пишу набор приложений, используя Руководство по составным приложениям для WPF. Функциональность каждого приложения определяется доступностью различных модулей, которые перечислены в App.config оболочки. Предоставляя каждому приложению отдельный файл App.config, я могу указать, какие модули может использовать каждое приложение.

Однако я хотел бы разделить один проект Shell между всеми приложениями для общего внешнего вида. Сначала я создал решение для каждого приложения, добавил проект Shell, а затем добавил соответствующие модули. Проблема заключается в том, что у общего проекта Shell есть только один файл App.config, и я не могу изменить его для каждого решения.

Заполнение каталога с помощью кода не устраняет эту проблему - в командной консоли по-прежнему будет специфичный для приложения код, который должен быть каким-то образом активирован с помощью используемого мной решения.

Ответы [ 2 ]

1 голос
/ 30 июня 2009

Что я решил сделать, так это рассматривать оболочку как свой собственный модуль. Каждое приложение имеет свое собственное решение и проект, которые содержат отдельные файлы App.config. У них также есть свои собственные классы Bootstrapper. Загрузчик в каждом приложении создает оболочку.

0 голосов
/ 25 июня 2009

Помимо модулей жесткого кодирования и загрузки модулей из конфигурации, вы также можете динамически загружать модули из заданного каталога.

Таким образом, чтобы настроить разные «приложения», использующие одну и ту же оболочку, я бы создал командный файл, который копирует нужные модули для каждого приложения в отдельные папки, создавая, таким образом, разные приложения.

Документация по Composite Guidance Library содержит дополнительную информацию о настройке проекта для динамической загрузки модулей из каталога.

...