У меня есть некоторые DTO, которые сопоставлены объектами Domain, благодаря автонастройкам на основе условных обозначений, то есть поля Address сглаживаются в DTO.Automapper unflatten с префиксом
Это отлично работает для преобразования доменов -> DTO, но в остальном я должен «unflatten» Address вручную.
Интересно, есть ли возможность «префикс» конфигурации отображения, так что я мог бы сделать что-то вроде
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;}
}
редактировать
Я знаю глобальной конфигурации "признал префиксы". Я бы предпочел установить обязательный префикс (а не «один из признанных») для конкретной Карты.