C# 用简单的喷油器更换Ninject

C# 用简单的喷油器更换Ninject,c#,dependency-injection,ninject,automapper,simple-injector,C#,Dependency Injection,Ninject,Automapper,Simple Injector,我已经在应用程序中使用了Ninject。Ninject确实简单易学,但速度相当慢,我尝试用另一个国际奥委会来比较它是否比Ninject快 MVC3有很多IoC容器,Simple Injector在我看来非常好,但是我在用它重新运行Ninject时遇到了很多问题 尤其是使用AutoMapper。我尝试将这些行转换为简单的注入器代码 Bind<ITypeMapFactory>().To<TypeMapFactory>(); foreach (var mapper in Ma

我已经在应用程序中使用了Ninject。Ninject确实简单易学,但速度相当慢,我尝试用另一个国际奥委会来比较它是否比Ninject快

MVC3有很多IoC容器,Simple Injector在我看来非常好,但是我在用它重新运行Ninject时遇到了很多问题

尤其是使用
AutoMapper
。我尝试将这些行转换为简单的注入器代码

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>()
Bind().To();
foreach(MapperRegistry.AllMappers()中的var映射器)
{
Bind().ToConstant(映射器);
}
Bind().ToSelf().InSingletonScope()
.WithConstructorArgument(“映射器”),
ctx=>ctx.Kernel.GetAll();
绑定()
.ToMethod(ctx=>ctx.Kernel.Get());
Bind().ToMethod(ctx=>
Kernel.Get());
将()绑定到()上

你能帮我吗?我已经阅读了文档并用谷歌搜索了一下,但到目前为止还没有解决方案。

这个Ninject注册大致可以转换为以下简单的注入器注册:

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

除非您说明需要帮助的内容,否则我们无法帮助您。什么失败了?