Как заставить AutoMapper создать экземпляр класса - PullRequest
10 голосов
/ 28 сентября 2011

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

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 Ответ

9 голосов
/ 28 сентября 2011

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

Mapper.CreateMap<Source, Destination>()
                .AfterMap((src, dest) =>
                              {
                                  dest.HomeAddress = new Address {PostalCode = src.ZipCode};
                              }
            );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...