Как заставить AutoMapper создать экземпляр класса

У меня есть следующий тип источника:

public class Source
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Address1 { get; set; }
    public string Address2 { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string ZipCode { get; set; }
}

У меня есть следующие типы назначения:

public class Destination
{
    public string FirstName { get; set; }
    public string LastName { get; set; }

    public Address HomeAddress { get; set; }
}

public class Address
{
    public string Address1 { get; set; }
    public string Address2 { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string PostalCode { get; set; }
}

Я создал сопоставление:

Mapper.CreateMap<Source, Destination>();

Как мне настроить сопоставление, чтобы он создал экземпляр Address и сопоставил свойство Address.PostalCode с использованием свойства Source ZipCode?

Ответ 1

В AfterMap вы можете указать, как отображать объекты дальше после того, как AutoMapper выполнил его сопоставление.

Mapper.CreateMap<Source, Destination>()
                .AfterMap((src, dest) =>
                              {
                                  dest.HomeAddress = new Address {PostalCode = src.ZipCode};
                              }
            );