Is anyone out there using the Prism framework with Ninject instead of Unity? I need some functionality Unity isn't supporting yet, and I've decided to switch the IoC container to Ninject. I'm struggling a bit with the replace though..
What I need to use from Prism is the EventAggregator and the RegionManager. I have seen this sample that actually does the replace, but this is written for an older version of Prism, and several of the classes seems to have changed etc. So I ended up all confused after looking doing some effort in trying to rewrite it.
So - my question is basically: How can I replace Unity with Ninject?
What are the necessary steps? Initially I assumed I could write a simple bootstrapper that creates and configures a Ninject container and uses this to resolve all other objects. I bind IEventAggregator to EventAggregator and IRegionManager to RegionManager, but it fails when creating the Shell and the RegionManager.CreateRegion is called. Problem is that it seems like I need to set a ServiceLocator somewhere as it fails on this line:
IServiceLocator locator = ServiceLocator.Current;
Any ideas and tips along the way?
I have just created a github project that used Ninject 2.0 and Prism 4.0 that should meet the need of anyone that want to swap unity or MEF for Ninject
Site is here: Prism Ninject Extension
Michael Hart implemented the necessary bits for Ninject in Prism"
You need only implement your own "NinjectBoostrapper" and an implementation of IServiceLocator that uses Ninject. The code in the link does all of this legwork for you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With