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