У меня есть консольное приложение MEF, хост (CompositionContainer
) которого загружает доступные сборки плагинов на основе параметра командной строки, например:
app.exe plugin1
загрузит хост (app.exe) и plugin1. Решение VS структурировано таким образом, что у каждого плагина есть собственный проект (следовательно, это собственная сборка).
Существует набор плагинов, некоторые из которых имеют возможность повторного использования кода. Так, например, у plugin1
есть метод CopyFiles(string fileName)
, и эта же функциональность должна использоваться plugin2
.
Теперь в традиционном консольном приложении можно добавить ссылку на plugin1.dll
и, используя это пространство имен, заняться его повторным использованием.
Мне любопытно, есть ли способ "MEF" для реализации этого повторного использования. Итак, что-то вроде создания объекта plugin1
в plugin2
путем добавления атрибута Import
в plugin1's
экспортируемый интерфейс и позволяя MEF позаботиться обо всем остальном. Это возможно? И если да, то как?
Или есть лучший подход, который следует использовать при разработке таких приложений? Бонус вуду за любые указатели на полезные учебные ресурсы и объяснения.
Спасибо!