我有两节课:
class A
{
public int MyProperty { get; set; }
}
class ADto
{
public int MyProperty { get; set; }
public bool Flag { get; set; }
}
我想将
IEnumerable<A>
映射到 IEnumerable<ADto>
,我用 _mapper.Map<IEnumerable<ADto>>(aList)
执行,但问题是我想计算正在映射的每个条目的 ADto.Flag
的值应该是多少。我可以在映射期间设置该标志的值吗?
是的。设置 AutoMapper 时,您需要添加 自定义投影 。这将指定如何从
A
映射到 ADto
。
var configuration = new MapperConfiguration(cfg => cfg.CreateProjection<A, ADto>()
.ForMember(d => d.Flag, opt => opt.MapFrom(c => { /* DO MAPPING HERE*/ }));