Przeczytałem zagnieżdżoną stronę wiki odwzorowania, ale wydaje się ona nie pasować do wielu poziomów zagnieżdżania. Mam utworzone następujące mapy i zdefiniowane klasy.Mapowanie zagnieżdżone Automappera
AutoMapper.Mapper.CreateMap<Address, AddressDTO>();
AutoMapper.Mapper.CreateMap<MatchCompanyRequest, MatchCompanyRequestDTO>();
public class MatchCompanyRequest
{
Address Address {get;set;}
}
public class MatchCompanyRequestDTO
{
public CompanyInformationDTO {get;set;}
}
public class CompanyInformationDTO {get;set;}
{
public string CompanyName {get;set;}
public AddressDTO Address {get;set;}
}
Ale następujący kod ...
// works
matchCompanyRequestDTO.companyInformationDTO.Address =
AutoMapper.Mapper.Map<Address, AddressDTO>(matchCompanyRequest.Address);
// fails
matchCompanyRequestDTO =
AutoMapper.Mapper
.Map<MatchCompanyRequest, MatchCompanyRequestDTO>(matchCompanyRequest);
Czy ten głęboki gniazdowania pracę i mam to skonfigurowane nieprawidłowo? Czy tego rodzaju zagnieżdżanie nie jest jeszcze obsługiwane?
- Edycja
Dla wszystkich zainteresowanych, nie jestem w kontroli DTOs.
Jak coś takiego być skonfigurowany jeśli nie używasz statycznego Instancja 'Mapper'? – dougajmcdonald
Następnie wystarczy użyć swojej instancji zamiast "AutoMapper.Mapper"? Naprawdę nie wiem - lata minęły, odkąd używałem AutoMappera ... – Bartosz
Tak, najlepszą praktyką w dzisiejszych czasach jest utworzenie profilu i wprowadzenie go do konfiguracji, dzięki czemu można go DI, a nie używać statycznych instancji. Jestem ciekawy, ponieważ widzę to jako powszechne rozwiązanie i zastanawiam się, w jaki sposób pasuje do obecnej najlepszej praktyki. – dougajmcdonald