2010-04-12 10 views
8

¿Hay alguien por ahí que use el Prism framework con Ninject en lugar de Unity? Necesito alguna funcionalidad. La unidad aún no es compatible, y he decidido cambiar el contenedor IoC a Ninject. Estoy luchando un poco con el reemplazo aunque ..Usando Prism with Ninject

Lo que necesito usar de Prism es el EventAggregator y el RegionManager. He visto this sample que realmente reemplaza, pero esto está escrito para una versión anterior de Prism, y varias de las clases parecen haber cambiado, etc. Así que terminé confundido después de mirar esforzándome al intentar reescribirlo.

Entonces, mi pregunta es básicamente: ¿Cómo puedo reemplazar Unity con Ninject?

¿Cuáles son los pasos necesarios? Inicialmente, asumí que podía escribir un bootstrapper simple que crea y configura un contenedor Ninject y lo usa para resolver todos los demás objetos. Vuelvo IEventAggregator a EventAggregator y IRegionManager a RegionManager, pero falla al crear el Shell y se llama a RegionManager.CreateRegion. El problema es que parece que necesito para configurar una ServiceLocator algún lugar, ya que falla en esta línea:

IServiceLocator locator = ServiceLocator.Current; 

Todas las ideas y sugerencias en el camino?

+1

Por curiosidad, ¿qué funcionalidad necesitas que Unity no tenga? –

Respuesta

3

Michael Hart implemented the necessary bits para Ninject en Prisma"

Solo hay que poner en práctica su propia 'NinjectBoostrapper' y una implementación de IServiceLocator que utiliza Ninject. El código en el enlace hace todo esto trabajo por usted.

+0

¡Parece prometedor! Muchas gracias por la referencia. Lo echaré un vistazo ahora ... – stiank81

+0

@Anderson el enlace está roto :( – dFlat

+0

Creo que lo encontré aquí: http://sweux.com/blogs/pombeiro/?s=ninject – dFlat

5

acabo creado un proyecto github que utiliza Ninject 2.0 y 4.0 Prisma que deben satisfacer las necesidades de cualquier persona que tenga la intención de la unidad o MEF para Ninject

sitio está aquí: Prism Ninject Extension

Cuestiones relacionadas