Automapper расстегивается с префиксом

У меня есть несколько DTO, которые сопоставляются с объектами Domain благодаря автоматическому сопоставлению на основе соглашений, то есть поля адреса сглаживаются в DTO.

Это прекрасно работает для преобразования Домен -> DTO, но в противном случае мне нужно вручную "расстегнуть" адрес.

Интересно, есть ли возможность "префикс" конфигурации сопоставления, чтобы я мог сделать что-то вроде

Mapper.CreateMap<PersonDTO, Address>().WithPrefix("Address");
...
Mapper.CreateMap<PersonDTO, Person>()
.ForMember(d => d.Address, opt => opt.MapFrom(src => Mapper.Map<Address>(src) ))

в противном случае мне придется вручную сопоставлять каждое поле адреса, что становится проблемой для более сложных объектов.

мои доменные объекты и DTO

class Person
{
    public string FirstName {get;set;}
    public string LastName {get;set;}
    public Address Address {get;set;}
}

class Address
{
    public string Street {get;set;}
    public string PostCode {get;set;}
}

и следующий DTO:

class PersonDTO
{
    public string FirstName {get;set;}
    public string LastName {get;set;}
    public string AddressStreet {get;set;}
    public string AddressPostCode {get;set;}
}

редактировать

Мне известны глобальные настройки "распознанных префиксов". Я бы предпочел установить обязательный префикс (не "один из распознанных") для конкретной карты.

1 ответ

Посмотрите на мой ответ на интересующий вопрос: AutoMapper не распознает префиксы, специфичные для профиля

Надеюсь это поможет!

Другие вопросы по тегам