views:

174

answers:

1

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?

+1  A: 

Here is someone who has implemented the necessary bits for Ninject in Prism" http://sweux.com/blogs/pombeiro/index.php/2009/05/14/migrating-ninjectcontribcompositewpf-bootstrapper-to-prism-v2/

You need only implement your own "NinjectBoostrapper" and an implementation if IServiceLocator that uses Ninject. The guy in the link above has done all of this legwork for you.

Hope this helps.

Anderson Imes
Looks promissing! Thanks alot for the reference. Will have a look now..
stiank81