使用 Automapper 进行映射时为每个可枚举项调用函数

问题描述 投票:0回答:1

我有两节课:

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
的值应该是多少。

不想想要配置映射全局,但在执行此特定映射时定义回调。

我可以在映射期间设置该标志的值吗?

.net-core automapper
1个回答
0
投票

是的。当您设置 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

© www.soinside.com 2019 - 2024. All rights reserved.