Использование призмы с Ninject

кто-нибудь там использует основы призмы С Ninject вместо Unity? Мне нужна некоторая функциональность, которую Unity еще не поддерживает, и я решил переключить контейнер IoC на Ninject. Я немного борюсь с заменой..

то, что мне нужно использовать из Prism, - это EventAggregator и RegionManager. Я видел этот пример это на самом деле делает замену, но это написано для более старой версии Prism и нескольких классы, похоже, изменились и т. д. Поэтому я оказался в замешательстве после того, как сделал некоторые усилия, пытаясь переписать его.

Так мой вопрос в принципе: Как заменить Unity на Ninject?

каковы необходимые шаги? Первоначально я предполагал, что могу написать простой загрузчик, который создает и настраивает контейнер Ninject и использует его для разрешения всех других объектов. Я связываю IEventAggregator с EventAggregator и IRegionManager с RegionManager, но это не удается при создании оболочки и RegionManager.CreateRegion называется. Проблема в том, что мне кажется, что мне нужно установить ServiceLocator где-то, поскольку он терпит неудачу в этой строке:

IServiceLocator locator = ServiceLocator.Current;

идеи и советы по пути?

2 ответов


Майкл Харт выполнены необходимые биты для Ninject в призме"

вам нужно только реализовать свой собственный "NinjectBoostrapper" и реализацию IServiceLocator, который использует Ninject. Код в ссылке делает всю эту работу за вас.


Я только что создал проект github, который использовал Ninject 2.0 и Prism 4.0, который должен удовлетворять потребности всех, кто хочет поменять unity или MEF на Ninject

сайт тут Расширение Призмы Ninject