5

アプリケーションに Ninject を使用しました。Ninject は非常にシンプルで簡単に習得できますが、非常に遅いため、別の IoC を使用して、Ninject と同じように高速であるかどうかを比較しようとしています。

MVC3 用の IoC コンテナはたくさんあり、Simple Injector は私にはとても良さそうに見えますが、Ninject をSimple Injectorに置き換えるには多くの問題があります。

特にAutoMapper. この行を 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>()

手伝ってもらえますか?ドキュメントを読んでググりましたが、これまでのところ解決策はありません。

4

1 に答える 1

11

この Ninject 登録は、大まかに次の Simple Injector 登録に変換されます。

container.Register<ITypeMapFactory, TypeMapFactory>();
container.RegisterCollection<IObjectMapper>(MapperRegistry.AllMappers());
container.RegisterSingleton<IConfiguration, ConfigurationStore>();
container.RegisterSingleton<IConfigurationProvider, ConfigurationStore>();
container.Register<IMappingEngine, MappingEngine>();
于 2012-07-25T22:07:10.340 に答える