Mam konsola oparta MEF aplikacja hosta (CompositionContainer
), z których ładunki Wolne zespoły plugin oparciu o parametr wiersza poleceń, na przykład:Wykorzystując metody dostępne w plugin1 w plugin2 przez MEF
app.exe plugin1
załaduje host (app.exe) i plugin1. Rozwiązanie VS jest skonstruowane w taki sposób, że każda wtyczka ma swój własny projekt (stąd jego własny montaż).
Istnieje zbiór wtyczek, z których niektóre mają możliwość ponownego użycia kodu. Na przykład plugin1
ma metodę CopyFiles(string fileName)
i ta sama funkcja ma być używana przez plugin2
.
Teraz w tradycyjnej aplikacji konsolowej można dodać odniesienie do plugin1.dll
i używając tej przestrzeni nazw, zajmij się ponownym wykorzystaniem.
Jestem ciekawy, czy istnieje sposób "MEF", jeśli chcesz, wdrożenia tego ponownego użycia. Tak więc, coś na kształt stworzenia obiektu plugin1
w plugin2
poprzez dodanie atrybutu Import
do eksportowanego interfejsu i umożliwienie MEF zaopiekowania się resztą. Czy to jest możliwe? A jeśli tak, to w jaki sposób?
Czy istnieje lepsze podejście, które należy zastosować podczas projektowania takich aplikacji? Bonus voodoo za wszelkie wskazówki do przydatnych zasobów edukacyjnych i wyjaśnień.
Dzięki!