Поскольку пользователь назначил открытую награду за вопрос, поставленный почти 9 лет назад, я добавлю обновленную опцию, которую я использовал для аналогичного проекта:
Платформа Prism для WPF очень хорошо документирована и надежна. Теперь я не уверен, что это совместимость с Vista (первоначальный запрос 9 лет назад), и я не уверен, что это важно больше. Он содержит очень похожую на MEF функцию в своем классе начальной загрузки, так что вы динамически загружаете то, что они называют библиотеками классов модулей (на самом деле это просто контейнеры XAML).
Таким образом, вы создаете библиотеки классов модулей и во время выполнения оболочки WPF сканирует каталог модулей в вашем приложении-контейнере для любых сборок модулей и динамически загружаются через каталог модулей (метод загрузчика Unity) в контейнер хоста через заранее определенные регионы. (звучит действительно MEF как да?)
Теперь Брайан Лагунас (http://brianlagunas.com)) опубликовал пример, который продвигает этот шаг дальше. Его реализация каталога модулей постоянно сканирует каталог, так что при добавлении DLL (во время выполнения оболочки) он выбирает файлы и обрабатывает их что фактически дает вам возможность добавлять управляемый код на лету. Добавьте кнопку загрузки в оболочку WPF, которая указывает на каталог модулей и использует агрегатор событий Prism, и вы можете переворачивать основной заголовок оболочки при каждой загрузке нового модуля. в.
Вот ссылка на пост Брайана, в котором обсуждается загрузка модулей во время выполнения:
http://brianlagunas.com/prism-dynamically-discover-and-load-modules-at-runtime/
Ссылка на пример GitHub:
https://github.com/brianlagunas/DynamicallyDiscover-LoadModules/
Если вы никогда не пользовались Призмой, то настоятельно рекомендуем вам посмотреть видео об ускоренном курсе Брайана. Это займет около 120 минут и поможет вам быстро начать работу с Prism, хотя версия немного устарела.
http://brianlagunas.com/infragistics-webinar-mvvm-made-simple-with-prism-sample-code/