如果要将源值投影到与源结构不完全匹配的目标中,则必须指定自定义成员映射定义。
public class CalendarEvent{public DateTime Date { get; set; }public string Title { get; set; }}public class CalendarEventForm{public DateTime EventDate { get; set; }public int EventHour { get; set; }public int EventMinute { get; set; }public string Title { get; set; }}var calendarEvent = new CalendarEvent{Date = new DateTime(2008, 12, 15, 20, 30, 0),Title = "Company Holiday Party"};// Configure AutoMappervar configuration = new MapperConfiguration(cfg =>cfg.CreateMap<CalendarEvent, CalendarEventForm>().ForMember(dest => dest.EventDate, opt => opt.MapFrom(src => src.Date.Date)).ForMember(dest => dest.EventHour, opt => opt.MapFrom(src => src.Date.Hour)).ForMember(dest => dest.EventMinute, opt => opt.MapFrom(src => src.Date.Minute)));// Perform mappingCalendarEventForm form = mapper.Map<CalendarEvent, CalendarEventForm>(calendarEvent);form.EventDate.ShouldEqual(new DateTime(2008, 12, 15));form.EventHour.ShouldEqual(20);form.EventMinute.ShouldEqual(30);form.Title.ShouldEqual("Company Holiday Party");
