2010-04-12 20 views
8

C'è qualcuno che usa lo Prism framework con Ninject anziché Unity? Ho bisogno di alcune funzionalità Unity non supporta ancora e ho deciso di passare il contenitore IoC a Ninject. Sto faticando un po 'con la sostituzione però ..Utilizzo di Prism con Ninject

Quello che devo usare da Prism è l'EventAggregator e il RegionManager. Ho visto this sample che in realtà sostituisce, ma questo è scritto per una versione precedente di Prism, e molte delle classi sembrano essere state modificate ecc. Quindi sono finito in confusione dopo aver cercato di fare qualche sforzo nel tentativo di riscriverlo.

Quindi, la mia domanda è in sostanza: Come posso sostituire Unity con Ninject?

Quali sono i passaggi necessari? Inizialmente pensavo di poter scrivere un semplice bootstrapper che crea e configura un contenitore Ninject e lo usa per risolvere tutti gli altri oggetti. Collego IEventAggregator a EventAggregator e IRegionManager a RegionManager, ma non riesce quando si crea Shell e viene chiamato RegionalManager.CreateRegion. Il problema è che sembra che ho bisogno di impostare un ServiceLocator da qualche parte in quanto non su questa linea:

IServiceLocator locator = ServiceLocator.Current; 

Tutte le idee e suggerimenti lungo la strada?

+1

Per curiosità, di quale funzionalità hai bisogno che Unity non ha? –

risposta

3

Michael Hart implemented the necessary bits per Ninject in Prism"

È sufficiente implementare il proprio "NinjectBoostrapper" e un'implementazione di IServiceLocator che utilizza Ninject. Il codice nel link fa tutto questo noia per voi.

+0

Sembra promettente! Grazie mille per il riferimento. Avrà uno sguardo ora .. – stiank81

+0

@Anderson il link è rotto :( – dFlat

+0

Penso di averlo trovato qui: http://sweux.com/blogs/pombeiro/?s=ninject – dFlat

5

ho appena creato un progetto github che ha utilizzato Ninject 2.0 e Prism 4.0 che dovrebbe soddisfare l'esigenza di tutti coloro che vogliono scambiare unità o MEF per Ninject

sito è qui: Prism Ninject Extension

Problemi correlati