我有两节课:
class A
{
public int MyProperty { get; set; }
}
class ADto
{
public int MyProperty { get; set; }
public bool Flag { get; set; }
}
我想将 IEnumerable 映射到我使用
_mapper.Map<IEnumerable<ADto>>(aList)
执行的 IEnumerable,但问题是我想计算正在映射的每个条目的 ADto.Flag
的值应该是多少。
我不想想要配置映射全局,但在执行此特定映射时定义回调。
我可以在映射期间设置该标志的值吗?
是的。当您设置 AutoMapper 时,您需要添加一个 自定义投影 。这将指定如何从
A
映射到 ADto
。
var configuration = new MapperConfiguration(cfg =>
cfg.CreateMap<A, ADto>()
.ForMember(dest => dest.Flag, opt => opt.MapFrom(src => { /* DO MAPPING HERE */ }))
这是一个 .NET Fiddle 演示如何使用它:https://dotnetfiddle.net/7IJF6z