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