向 Automapper 发送附加数据

Sending additional data to Automapper

我想向 Automapper 发送一些附加信息,以便我可以在 CreateMap 中使用它们。看来我必须使用 MappingOperatingOptionItems.

所以我的电话是这样的:

var obj = Mapper.Map<class>(x, o => o.Items.Add("data", 23));

问题是我无法在 MapFrom.

中访问该值
Mapper.CreateMap<ClassA, ClassB>()
                .ForMember(x => x.FieldA, o => o.MapFrom(d => 
                    //accessing item here))

关于 Automapper 的文档很少,我什么也没想到,欢迎任何指导。

像这样使用 ResolveUsing 而不是 MapFrom

Mapper.CreateMap<ClassA, ClassB>()
    .ForMember(dst => dst.FieldA,
        opt =>
            opt.ResolveUsing((resolution_result, src) =>
                (int)resolution_result.Context.Options.Items["data"] + src.FieldB));

我在这里使用 (int)resolution_result.Context.Options.Items["data"] + src.FieldB 作为示例。您可以从 resolution_result.Context.Options.Items 中读取任何一条数据并随意使用它。