2012-07-25 38 views
5

Tôi đã sử dụng Ninject cho ứng dụng của mình. Ninject thực sự đơn giản và dễ học, nhưng nó khá chậm và tôi cố gắng sử dụng một IoC khác để so sánh nếu nó nhanh hơn với Ninject.Thay thế Ninject bằng Injector đơn giản

Có rất nhiều container IoC cho MVC3 và Injector đơn giản trông thực sự tốt với tôi, nhưng tôi đã có rất nhiều vấn đề với việc thay đổi Ninject bằng Simple Injector.

Đặc biệt với AutoMapper. Tôi cố gắng chuyển đổi các dòng này thành mã Injector đơn giản.

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>() 

Bạn có thể giúp tôi? Tôi đã đọc tài liệu và googled, nhưng không có giải pháp cho đến nay.

+1

Chúng tôi không thể giúp bạn, trừ khi bạn nêu những gì nó là bạn cần giúp đỡ. Điều gì thất bại? – Mithon

Trả lời

11

đăng ký Ninject này nôm na là việc đăng ký Injector đơn giản sau đây:

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

Nó hoạt động! CẢM ƠN :-)! Điều đó khá dễ dàng ... –

Các vấn đề liên quan