Ho una console basata un'applicazione MEF dell'ospite (CompositionContainer
) di cui carica assiemi di plugin disponibili in base al parametro della riga di comando, ad esempio:Utilizzando metodi disponibili in plugin1 in plugin2 via MEF
app.exe plugin1
caricherà il host (app.exe) e plugin1. La soluzione VS è strutturata in modo tale che ogni plugin abbia il proprio progetto (quindi è un proprio assembly).
Esiste una raccolta di plug-in, alcuni dei quali hanno l'opportunità di riutilizzare il codice. Ad esempio, ad esempio plugin1
ha un metodo CopyFiles(string fileName)
e la stessa funzionalità deve essere utilizzata da plugin2
.
Ora, in un'applicazione di console tradizionali si potrebbe aggiungere un riferimento a plugin1.dll
e utilizzando namespace che andare a questo proposito è il commercio di riutilizzo.
Sono curioso di sapere se esiste un modo "MEF", se lo si desidera, di implementare questo riutilizzo. Quindi, qualcosa sulla falsariga di creare un oggetto di plugin1
in plugin2
aggiungendo un attributo all'interfaccia esportabile plugin1's
e lasciare che il MEF si occupi del resto. È possibile? E se sì, come?
O c'è un approccio migliore che si dovrebbe prendere quando si progettano tali applicazioni? Bonus voodoo per qualsiasi indicazione su risorse e spiegazioni utili all'apprendimento.
Grazie!