如果要将源值投影到与源结构不完全匹配的目标中,则必须指定自定义成员映射定义。

    1. public class CalendarEvent
    2. {
    3. public DateTime Date { get; set; }
    4. public string Title { get; set; }
    5. }
    6. public class CalendarEventForm
    7. {
    8. public DateTime EventDate { get; set; }
    9. public int EventHour { get; set; }
    10. public int EventMinute { get; set; }
    11. public string Title { get; set; }
    12. }
    13. var calendarEvent = new CalendarEvent
    14. {
    15. Date = new DateTime(2008, 12, 15, 20, 30, 0),
    16. Title = "Company Holiday Party"
    17. };
    18. // Configure AutoMapper
    19. var configuration = new MapperConfiguration(cfg =>
    20. cfg.CreateMap<CalendarEvent, CalendarEventForm>()
    21. .ForMember(dest => dest.EventDate, opt => opt.MapFrom(src => src.Date.Date))
    22. .ForMember(dest => dest.EventHour, opt => opt.MapFrom(src => src.Date.Hour))
    23. .ForMember(dest => dest.EventMinute, opt => opt.MapFrom(src => src.Date.Minute)));
    24. // Perform mapping
    25. CalendarEventForm form = mapper.Map<CalendarEvent, CalendarEventForm>(calendarEvent);
    26. form.EventDate.ShouldEqual(new DateTime(2008, 12, 15));
    27. form.EventHour.ShouldEqual(20);
    28. form.EventMinute.ShouldEqual(30);
    29. form.Title.ShouldEqual("Company Holiday Party");