2012-07-25 25 views
5

He usado Ninject para mi aplicación. Ninject es realmente simple y fácil de aprender, pero es bastante lento y trato de usar otro IoC para comparar si es más rápido que con Ninject.Reemplazar Ninject con inyector simple

Hay muchos contenedores de IoC para MVC3 y Simple Injector se ve muy bien para mí, pero tengo muchos problemas para replantar Ninject con Simple Injector.

Especialmente con AutoMapper. Intento convertir estas líneas en código Simple Injector.

Bind<ITypeMapFactory>().To<TypeMapFactory>(); 

foreach (var mapper in MapperRegistry.AllMappers()) 
{ 
    Bind<IObjectMapper>().ToConstant(mapper); 
} 

Bind<ConfigurationStore>().ToSelf().InSingletonScope() 
    .WithConstructorArgument("mappers", 
     ctx => ctx.Kernel.GetAll<IObjectMapper>()); 

Bind<IConfiguration>() 
    .ToMethod(ctx => ctx.Kernel.Get<ConfigurationStore>()); 

Bind<IConfigurationProvider>().ToMethod(ctx => 
    ctx.Kernel.Get<ConfigurationStore>()); 

Bind<IMappingEngine>().To<MappingEngine>() 

¿Se me puede ayudar? He leído la documentación y busqué en Google, pero no hay solución hasta el momento.

+1

No podemos ayudar a menos que usted indique qué es lo que necesita ayuda. ¿Qué falla? – Mithon

Respuesta

11

Este registro Ninject se traduce aproximadamente a la siguiente inscripción inyector simple:

container.Register<ITypeMapFactory, TypeMapFactory>(); 
container.RegisterCollection<IObjectMapper>(MapperRegistry.AllMappers()); 
container.RegisterSingleton<IConfiguration, ConfigurationStore>(); 
container.RegisterSingleton<IConfigurationProvider, ConfigurationStore>(); 
container.Register<IMappingEngine, MappingEngine>(); 
+1

¡Funciona! GRACIAS :-)! Eso fue bastante fácil ... –

Cuestiones relacionadas