В Automapper 7 я использую этот код для сопоставления дочернего свойства:
Mapper.CreateMap<DomainClass, Child>();
Mapper.CreateMap<DomainClass, Parent>()
.ForMember(d => d.Id, opt => opt.MapFrom(s => s.Id))
.ForMember(d => d.A, opt => opt.MapFrom(s => s.A))
.ForMember(d => d.Child,
opt => opt.MapFrom(s => Mapper.Map<DomainClass, Child>(s)))
Теперь, в Automapper 9 я не могу использовать статический объект Mapper
Я использую DI для добавления объекта mapper в класс MappingProfile
private readonly IMapper _mapper;
public MappingProfile(IMapper mapper)
{
_mapper = mapper;
}
Затем я использую объект _mapper вместо статического Mapper
Mapper.CreateMap<DomainClass, Child>();
Mapper.CreateMap<DomainClass, Parent>()
.ForMember(d => d.Id, opt => opt.MapFrom(s => s.Id))
.ForMember(d => d.A, opt => opt.MapFrom(s => s.A))
.ForMember(d => d.Child,
opt => opt.MapFrom(s => _mapper.Map<DomainClass, Child>(s)))
Но это не работает.Свойство Child всегда имеет значение null.Что я делаю не так?