Utilisation de MEF Je souhaite effectuer les opérations suivantes.MEF, création de l'arbre d'importation lorsqu'une branche est demandée
J'ai un shell WPF. Pour le shell, je veux importer à partir d'une autre DLL un UserControl qui est également une vue de mon triade MVP. La façon dont la triade MVP fonctionne, c'est que dans le présentateur, j'ai un constructeur qui prend à la fois IModel et IView et les câbler. Ainsi, pour que cela fonctionne, je dois MEF faire ce qui suit:
- Créer IView mise en œuvre
- Créer IModel mise en œuvre
- Créer Presenter et passer IModel et IView à son constructeur
- importation IView mise en œuvre dans mon shell quand il est affiché
Au lieu de ce qu'il fait, il crée seulement le type Exporter IView et le passe à la coquille, skipp essentiellement Les étapes 2 et 3 sont assez logiques, quand on y pense, mais comment puis-je dire au MEF de créer aussi toute la triade quand je demande un IView. Je n'ai pas besoin de référencer Presenter ni modéliser ailleurs dans mon fichier .dll Shell, le mettre en tant qu'importation n'est donc pas une option (et ce serait plutôt moche de toute façon :). J'utilise la dernière goutte de MEF (Preview 2 Refresh). Quelqu'un?
== == Mise à jour
J'ai trouvé une solution et je blogué à ce sujet ici:
Krzysztof Koźmic's blog - Creating tree of dependencies with MEF
Cependant, je serais plus heureux si quelqu'un est venu avec un meilleur solution. **
Avez-vous mis [ImportingConstructor] sur le constructeur? –
Oui, j'ai vérifié le lien que j'ai fourni, il y a une version simplifiée du code et ma solution. Cela fonctionne mais je me demande s'il y a une meilleure façon de le faire. –