2012-07-25 22 views
5

Uygulamam için Ninject kullanmıştım. Ninject gerçekten basit ve öğrenmesi kolay, ancak oldukça yavaş ve Ninject gibi daha hızlı bir şekilde karşılaştırmak için başka bir IoC kullanmaya çalışıyorum.Basit Enjektör ile Ninject Değiştir

MVC3 ve Simple Injector için çok fazla IoC kapsayıcı bana çok iyi geliyor, ancak Simple Injector ile Ninject'in değiştirilmesiyle ilgili birçok sorun yaşıyorum.

Özellikle AutoMapper ile. Bu satırı Basit Enjektör koduna dönüştürmeye çalışıyorum.

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

bana yardım edebilir mi? Belgeleri okudum ve googledim, ancak şu ana kadar çözüm yok.

+1

. Ne başarısız? – Mithon

cevap

11

Bu Ninject kaydı kabaca aşağıdaki Basit Enjektör kayıt çevirir: Eğer bu size yardıma ihtiyacım olanı devlet sürece size yardımcı olamaz

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

Çalışıyor! TEŞEKKÜRLER :-)! Bu oldukça kolaydı ... –