Automapper и SimpleInjector с использованием WebApiRequestLifestyle
Я вставляю Automapper (последняя версия от Nuget) в свой проект (WebApi2, framework 4.5.1) и использую SimpleInjector (последняя версия от Nuget).
Моя проблема в том, что до использования Automapper все работало. Теперь я не уверен, почему он говорит мне, что обратное отображение отсутствует (когда я знаю, что оно не нужно для вызываемой службы).
Я использую интерфейс IMappingEngine.
У меня есть класс AutoMapperConfig со всеми Mapper.CreateMap
Пример AutoMapperConfig
public static class AutoMapperConfig
{
public static void Configure(IMappingEngine mappingEngine)
{
Mapper.CreateMap<Entity, EntityModel>()
...
}
}
Причина, по которой AutoMapperConfig.Configure получает IMappingEngine, заключается в том, что некоторые атрибуты сопоставлений имеют другие сопоставления внутри. Например (фрагмент кода):(Обратите внимание на Mapper.Map внутри Mapper.CreateMap)
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
Что-то отсутствует или не так?
Заранее спасибо! Гильермо.