Frage

Ich habe Ninject für meine Anwendung verwendet.Ninject ist wirklich einfach und leicht zu erlernen, aber es ist ziemlich langsam und ich versuche, ein anderes IoC zu verwenden, um zu vergleichen, ob es schneller als mit Ninject ist.

Es gibt viele IoC-Container für MVC3 und Simple Injector sieht für mich wirklich gut aus, aber ich habe große Probleme damit, Ninject durch zu ersetzen Einfacher Injektor.

Vor allem mit dem AutoMapper.Ich versuche, diese Zeilen in Simple Injector-Code umzuwandeln.

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

Kannst du mir helfen?Ich habe die Dokumentation gelesen und gegoogelt, aber bisher keine Lösung.

War es hilfreich?

Lösung

Diese Ninject-Registrierung entspricht grob der folgenden Simple Injector-Registrierung:

container.Register<ITypeMapFactory, TypeMapFactory>();
container.RegisterCollection<IObjectMapper>(MapperRegistry.AllMappers());
container.RegisterSingleton<IConfiguration, ConfigurationStore>();
container.RegisterSingleton<IConfigurationProvider, ConfigurationStore>();
container.Register<IMappingEngine, MappingEngine>();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top