2010-04-12 21 views
8

Czy ktoś tam używa Prism framework z Ninject zamiast Unity? Potrzebuję jakiejś funkcjonalności, której Unity jeszcze nie wspiera i zdecydowałem się przełączyć kontener IoC na Ninject. Trochę borykam się z wymianą ..Korzystanie z Prism z Ninject

To, czego potrzebuję od Prism to EventAggregator i RegionManager. Widziałem this sample, który faktycznie zastępuje, ale jest napisane dla starszej wersji Prism i kilka klas wydaje się, że zmieniło się itd. Więc skończyło się na tym, że byłem zmieszany po tym, jak starałem się go przepisać.

Moje pytanie brzmi: Jak mogę zamienić Unity na Ninject?

Jakie są niezbędne kroki? Początkowo zakładałem, że mogę napisać prosty bootstrapper, który tworzy i konfiguruje kontener Ninject i używa go do rozwiązywania wszystkich innych obiektów. Wiążę IEventAggregator z EventAggregator i IRegionManager z menedżerem RegionManager, ale zawiedzie podczas tworzenia powłoki i wywołania funkcji RegionManager.CreateRegion. Problemem jest to, że wydaje się, że muszę ustawić ServiceLocator gdzieś jak to nie działa na tej linii:

IServiceLocator locator = ServiceLocator.Current; 

żadnych pomysłów i wskazówek po drodze?

+1

Z ciekawości, jakiej funkcjonalności potrzebujesz, której Unity nie ma? –

Odpowiedz

3

Michael Hart implemented the necessary bits dla Ninject w Prism”

Trzeba tylko zaimplementować własną«NinjectBoostrapper»i implementację IServiceLocator który używa Ninject. Kod w linku robi wszystko to zdobyciem dla Ciebie.

+0

Wygląda obiecująco! Wielkie dzięki za referencję. Teraz będzie wyglądać ... – stiank81

+0

@Anderson link jest zepsuty :( – dFlat

+0

Pomyśl, znalazłem go tutaj: http://sweux.com/blogs/pombeiro/?s=ninject – dFlat

5

właśnie stworzyliśmy projekt gitHub że używany Ninject 2.0 i Prism 4.0, które powinny zaspokoić potrzeby każdego, kto chce zamienić jedność lub MEF dla Ninject

strony jest tutaj: Prism Ninject Extension