我正在将Automapper(Nuget的最新版本)插入我的项目(WebApi2,框架4.5.1)并使用SimpleInjector(Nuget的最新版本)。
我的问题是在使用Automapper之前一切正常。现在我不知道为什么它会告诉我缺少反向映射(当我知道调用服务时不需要它)。
我正在使用IMappingEngine界面。
我有一个包含所有Mapper.CreateMap的AutoMapperConfig类
AutoMapperConfig的示例
public static class AutoMapperConfig
{
public static void Configure(IMappingEngine mappingEngine)
{
Mapper.CreateMap<Entity, EntityModel>()
...
}
}
AutoMapperConfig.Configure接收IMappingEngine的原因是某些映射属性内部还有其他映射。例如(代码片段): (注意Mapper.CreateMap中的Mapper.Map)
Mapper.CreateMap<Req, ReqModel>()
.ForMember(
opt => opt.MapFrom(
src => new ServiceModel(mappingEngine)
{
Id = src.Plan.Id,
Name = src.Plan.Service.Name,
ServiceTypeId = src.Plan.Service.Type.Id,
Type = Mapper.Map<TypeModel>(src.Plan.Service.Type)
}))
在 Global.asax (方法Application_Start())我正在致电:
AutoMapperConfig.Configure(Mapper.Engine);
我正在使用 SimpleInjector 注册:
container.RegisterSingleton<IMappingEngine>(Mapper.Engine);
AutoMapper.Mapper.Configuration.ConstructServicesUsing(container.GetInstance);
然后每个控制器接收IMappingEngine并使用:
MappingEngine.Map
有什么遗漏或错误吗?
提前致谢!吉列尔莫。