2009-12-02 7 views
2

J'utilise Prism et le conteneur Unity IoC fourni avec Prism. Cependant, j'aimerais utiliser un autre conteneur IoC si c'est faisable. Alors; est-ce? De préférence, j'aimerais utiliser StructureMap. Notez que je ne suis pas encore familier avec StructureMap, mais sur la base de plusieurs recommandations, je voudrais essayer.Utilisation de StructureMap pour configurer Prism

La question est vraiment de savoir comment Prism est couplé à son conteneur Unity. Il y a le UnityBootstrapper qui est livré avec le conteneur IoC déjà configuré avec le composant Prism comme EventAggregator. Mais existe-t-il un Bootstrapper similaire dans StructureMap que je peux utiliser - en configurant les classes Prism requises?

Est-ce quelque chose que l'on recommande de faire, ou suis-je mieux de rester fidèle à Unity? Quels sont les inconvénients et les avantages?

Répondre

2

Ceci est définitivement faisable. Vous devez faire 2 choses, essentiellement:

  1. Créez un nouveau programme d'amorçage (StructureMapBootstrapper).
  2. Créez une implémentation de IContainerFacade qui utilise StructureMap.

Il n'existe aucune fonctionnalité spécifique à Unity. Il est conçu pour être remplaçable. Voici un exemple de remplacement de Ninject: http://code.google.com/p/ninject-contrib/source/browse/trunk/CompositeWpf/NinjectContrib.CompositeWpf/

Cela devrait être un bon modèle pour votre remplacement.

+0

Merci! Jetez un oeil sur les échantillons de Ninject. – stiank81