我已经阅读了嵌套映射的wiki页面,但似乎不支持多层嵌套。我已经创建了以下地图并定义了类。
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);
这种深层嵌套是否有效,还是我的配置不正确?或者这种嵌套尚未得到支持?
--编辑
对于有兴趣的人,我无法控制DTOs。
Mapper
实例,那么像这样的东西将如何配置? - dougajmcdonaldAutoMapper.Mapper
吗?我不太确定 - 已经好几年没用 AutoMapper 了... - BartoszCreateMap
,其余部分保持不变... - BartoszCreateMap
,而是创建一个配置文件并在其中调用CreateMap
,因为它从Profile
继承。在解析器中,你无法访问注入的实例。 - dougajmcdonald