2010-04-12 10 views
8

Est-ce que quelqu'un utilise le Prism framework avec Ninject au lieu de Unity? J'ai besoin de fonctionnalités Unity ne supporte pas encore, et j'ai décidé de passer le conteneur IoC à Ninject. Je me bats un peu avec le remplacer si ..Utilisation de Prism avec Ninject

Ce que j'ai besoin d'utiliser de Prism est l'EventAggregator et le RegionManager. J'ai vu this sample qui fait réellement le remplacer, mais ceci est écrit pour une version plus ancienne de Prism, et plusieurs des classes semble avoir changé etc. Ainsi j'ai fini tout confus après avoir cherché à faire quelques efforts en essayant de le réécrire. Donc, ma question est la suivante: Comment remplacer Unity avec Ninject?

Quelles sont les étapes nécessaires? Au départ, j'ai supposé que je pouvais écrire un simple bootstrapper qui crée et configure un conteneur Ninject et l'utilise pour résoudre tous les autres objets. Je lie IEventAggregator à EventAggregator et IRegionManager à RegionManager, mais il échoue lors de la création de l'environnement Shell et RegionManager.CreateRegion est appelée. Le problème est qu'il semble que je dois définir une ServiceLocator quelque part car il échoue sur cette ligne:

IServiceLocator locator = ServiceLocator.Current; 

Des idées et des conseils sur la route?

+1

Par curiosité, quelle fonctionnalité avez-vous besoin que Unity n'a pas? –

Répondre

3

Michael Hart implemented the necessary bits pour Ninject Prism »

Il vous suffit de mettre en œuvre votre propre « NinjectBoostrapper » et une mise en œuvre de IServiceLocator qui utilise Ninject. Le code dans le lien fait tout ce travail sur le terrain pour vous.

+0

Cela promet! Merci beaucoup pour la référence. Je vais jeter un oeil maintenant .. – stiank81

+0

@Anderson le lien est cassé :( – dFlat

+0

Pensez que je l'ai trouvé ici: http://sweux.com/blogs/pombeiro/?s=ninject – dFlat

5

Je viens de créer un projet github qui a utilisé Ninject 2.0 et Prism 4.0 qui devrait répondre aux besoins de tous ceux qui veulent échanger l'unité ou pour Ninject MEF

site est ici: Prism Ninject Extension