Как указать правило сопоставления, когда имена свойств различаются

Я новичок в системе Automapper. У меня есть класс домена и класс DTO следующим образом:

public class Employee
{
   public long Id {get;set;}
   public string Name {get;set;}
   public string Phone {get;set;}
   public string Fax {get;set;}
   public DateTime DateOfBirth {get;set;}
}

public class EmployeeDto
{
   public long Id {get;set;}
   public string FullName {get;set;}
   public DateTime DateOfBirth {get;set;}
}

Примечание. Имя свойства Имя "класса Employee не совпадает с именем свойства FullName" класса EmployeeDto.

И вот код для отображения объекта Employee на EmployeeDto:

Mapper.CreateMap<Employee, EmployeeDto>(); // code line (***)
EmployeeDto dto = Mapper.Map<Employee, EmployeeDto>(employee); 

Мой вопрос: если я хочу сопоставить Employee (исходный класс) с EmployeeDto (целевой класс), как я могу указать правило сопоставления? Другими словами, как мне сделать больше с линией кода (***) выше?

Ответ 1

Ничего, я сам нашел решение:

Mapper.CreateMap<Employee, EmployeeDto>()
    .ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.Name));

Ответ 2

Действительно старая тема, но только для того, чтобы свернуть комментарии выше в обновленном подходе, используя Automapper 8. 1+...

var mapConfig = new MapperConfiguration(
   cfg => cfg.CreateMap<Employee, EmployeeDto>()
      .ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.Name))
);

Затем вы должны построить маппер, используя mapConfig:

var mapper = mapConfig.CreateMapper();