映射前后(Before and After Map Action)
你可能偶爾需要在映射發(fā)生前后執(zhí)行自定義邏輯阶牍。這應(yīng)該很少見喷面,這種操作放在AutoMapper
之外更加合理。不過你還是可以使用before/after 映射動作來達(dá)到目的:
Mapper.Initialize(cfg => {
cfg.CreateMap<Source, Dest>()
.BeforeMap((src, dest) => src.Value = src.Value + 10)
.AfterMap((src, dest) => dest.Name = "John");
});
或者在映射時創(chuàng)建before/after 映射回調(diào):
int i = 10;
Mapper.Map<Source, Dest>(src, opt => {
opt.BeforeMap((src, dest) => src.Value = src.Value + i);
opt.AfterMap((src, dest) => dest.Name = HttpContext.Current.Identity.Name);
});
后一種配置在映射動作前后需要用到關(guān)聯(lián)的上下文信息時很有用走孽。