Dependency injection 如何将AutoMApper.5.2.0与Ninject一起使用?
我现在正在从事一个大型ASP.NETMVC5项目,我正在使用Ninject framework for MVC实现DI。事实上,这是我第一次使用Ninject,我迫切需要知道使用AutoMApper 5.2.0的最佳实践是什么 在谷歌搜索之后,我发现了一些例子,展示了旧版本的AutoMapper,在新版本中有一些不推荐的方法 我的解决方案由以下项目组成:Dependency injection 如何将AutoMApper.5.2.0与Ninject一起使用?,dependency-injection,ninject,automapper,ninject.web.mvc,Dependency Injection,Ninject,Automapper,Ninject.web.mvc,我现在正在从事一个大型ASP.NETMVC5项目,我正在使用Ninject framework for MVC实现DI。事实上,这是我第一次使用Ninject,我迫切需要知道使用AutoMApper 5.2.0的最佳实践是什么 在谷歌搜索之后,我发现了一些例子,展示了旧版本的AutoMapper,在新版本中有一些不推荐的方法 我的解决方案由以下项目组成: 核心 资料 服务 网 我在这个项目中也在做同样的工作。在Ninject中,有三件事需要为AutoMapper设置 Bind()AutoMapp
我在这个项目中也在做同样的工作。在Ninject中,有三件事需要为AutoMapper设置
AutoMapper.IMapper
ninject模块
:
public class AutoMapperModule : NinjectModule
{
public override void Load()
{
Bind<IMapper>().ToMethod(AutoMapper).InSingletonScope();
}
private IMapper AutoMapper(Ninject.Activation.IContext context)
{
Mapper.Initialize(config =>
{
config.ConstructServicesUsing(type => context.Kernel.Get(type));
config.CreateMap<MySource, MyDest>();
// .... other mappings, Profiles, etc.
});
Mapper.AssertConfigurationIsValid(); // optional
return Mapper.Instance;
}
}
public类AutoMapperModule:ninject模块
{
公共覆盖无效负载()
{
Bind().ToMethod(AutoMapper).InSingletonScope();
}
专用IMapper自动映射(Ninject.Activation.IContext上下文)
{
初始化(配置=>
{
config.ConstructServicesUsing(type=>context.Kernel.Get(type));
config.CreateMap();
//..其他映射、配置文件等。
});
Mapper.AssertConfigurationsValid();//可选
返回Mapper.Instance;
}
}
然后,您只需将
AutoMapper.IMapper
注入到类中,而不是使用静态Mapper
没有最佳实践,请阅读。关于您希望/需要如何实现it,只有用例和业务需求。。。如果你告诉我们更多的细节,我们可能会给你一些具体的答案。谢谢你的帮助,这是我正在做的项目,你想在哪一层做映射?我想在Ioc.Web层做映射。好的,你不清楚使用Automapper的哪些部分?请将所有这些详细信息编辑到您的问题中!顺便说一句,这是Automapper4.2.1。我希望在V5中,对于那些使用这个答案的人来说,不要忘记在内核中注册AutoMapperModule:var kernel=new-StandardKernel(new-AutoMapperModule())代码>