2010-04-12 1 views
8

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

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

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

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

IServiceLocator locator = ServiceLocator.Current; 

Любые идеи и советы по пути?

+1

Из любопытства, какая функциональность вам нужна, чего нет у Unity? –

ответ

3

Майкл Харт implemented the necessary bits для Ninject в Призме»

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

+0

Выглядит перспективным! Большое спасибо за ссылку. Посмотрите сейчас. – stiank81

+0

@Anderson ссылка не работает :( – dFlat

+0

Думаю, я нашел ее здесь: http://sweux.com/blogs/pombeiro/?s=ninject – dFlat

5

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

сайта здесь: Prism Ninject Extension