我想向Automapper发送一些其他信息,以便我可以在CreateMap
中使用它们。我似乎必须使用MappingOperatingOption
和Items
。
所以我的电话是这样的:
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的文档很少,我没有提出任何建议,欢迎任何指导。
答案 0 :(得分:1)
使用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
读取任何数据,并根据需要使用它。