Я закончил тем, что создал свои собственные средства распознавания значений для любых подобъектов MainObject
, которые получены из DTOObject
.
public class PartResolver<T> : ValueResolver<DTOObject, T>
{
protected override T ResolveCore(DTOObject source)
{
return Mapper.Map<T>(source);
}
}
Затем в своей конфигурации Automapper я создаю карту от DTOObject
до SubObject
и использую ValueResolver для сопоставления этого объекта с MainObject
Mapper.CreateMap<DTOObject, SubObject>();
Mapper.CreateMap<DTOObject, MainObject>()
.ForMember(dest => dest.SubPart, opt => opt.ResolveUsing<PartResolver<SubObject>>());