В настоящее время я работаю над приложением на C #, которое загружает множество различных модулей (драйверы .net для компонентов оборудования и т. Д.). Приложение должно предлагать своего рода менеджер плагинов / надстроек для выбора выделенных модулей (только выделенная группа устройств, фильтров, компонентов). Основываясь на том факте, что существует хорошо зарекомендовавший себя фреймворк MEF, который поставляется из коробки от MS, я подумал, что было бы неплохо попробовать.
Основная проблема, с которой я сейчас сталкиваюсь, этоДело в том, что после сканирования папок для надстроек через DirectoryCatalog
все сборки загружаются в процесс (в настоящее время ничего не создается, потому что я использую механизм "Lazy").
Тем не менее, я хочу избежать загрузки всех сборок в процессе, когда пользователь решит выбрать только некоторые из них.
Поэтому я пытаюсь найти способ получить метаданные надстройки, не сохраняя сборки загруженными в процессе. Я видел, что фреймворк Mono.Addins
, кажется, поддерживает такой сценарий с манифестами на основе XML - но я не уверен, что подобное можно было бы сделать с MEF?