2013-08-07 15 views
5

Non riesco a trovare nessun buon esempio su MEF2.MEF2 come funzionano i cataloghi? Sembra che sia stato rimosso

Vorrei creare una directory di plugin e utilizzare un catalogo di elenchi per caricare le importazioni.

Quello che vorrei:

  1. No attributi. Utilizzo del Configuration Builder con convenzioni
  2. Directory plug-in
  3. Quando viene aggiunta una DLL, l'applicazione è a conoscenza delle nuove esportazioni disponibili.

Posso usare solo Castle Windsor per questo?

+0

Cosa hai provato? Perché pensi che DirectoryCatalog sia stato rimosso? Cosa intendi con "Nessun attributo"? Cosa intendi con "Uso del Configuration Builder"? – Matt

risposta

1

Il modello di convenzioni introdotto con MEF2 è un'alternativa al modello attribuito. Entrambi i modelli possono coesistere in un'applicazione. I cataloghi hanno un nuovo constuctor che accetta un argomento come ReflectionContext. RegisrationBuilder deriva da questa classe. Quindi crea un RegistrationBuilder, lo configura e poi crea uno o più cataloghi usando i nuovi .ctors e passandoli come ReflectionContext.

Dai un'occhiata a questo series of articles introducendo le funzionalità di MEF2. Dai anche un'occhiata a questo introductory article from CodeProject.

Non ho usato Castle Winsdor quindi non posso commentare questo.

3

Se ti riferisci alla nuova versione Windows Store di MEF available on nuget, poi the documentation stati,

Non esiste il concetto di catalogo, né lotti di composizione, né API “gerarchia contenitore” o la composizione di scoping.

Suoni impazziti per uno sviluppatore MEF 1, ma la pagina spiega bene la logica. Tuttavia, si richiedono:

  • Quando una DLL viene aggiunta l'applicazione è a conoscenza di nuove esportazioni disponibili.

Questo è esplicitamente non disponibili nella versione MEF 2 (deposito di vittoria), dal momento che non supporta ricomposizione. Per questo è necessario il "pieno" MEF da .NET Framework, in System.ComponentModel.Composition.