我讀過嵌套的映射wiki頁面,但它似乎不喜歡多層次的嵌套。我已經創建了下面的地圖並定義了類。Automapper嵌套映射
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;}
}
但下面的代碼...
// works
matchCompanyRequestDTO.companyInformationDTO.Address =
AutoMapper.Mapper.Map<Address, AddressDTO>(matchCompanyRequest.Address);
// fails
matchCompanyRequestDTO =
AutoMapper.Mapper
.Map<MatchCompanyRequest, MatchCompanyRequestDTO>(matchCompanyRequest);
這是否深度嵌套的工作,我有它配置不當?還是這種嵌套尚未支持?
- 編輯
任何有興趣,我不是在DTO的控制。
怎麼會是這樣的,如果你不使用靜態配置'Mapper'實例? – dougajmcdonald
然後,您只需使用您的實例而不是'AutoMapper.Mapper'?我真的不知道 - 自從我使用AutoMapper以來已經有好幾年了...... – Bartosz
是的,現在最好的做法是創建一個配置文件並將其饋送到配置中,以便您可以直接使用而不使用靜態實例。我很好奇,因爲我認爲這是一種常見的解決方案,並想知道它如何適合當前的最佳實踐。 – dougajmcdonald