你可能偶尔须要在映射发生先后执行自定义逻辑。这应该不多见,这种操做放在AutoMapper
以外更加合理。不过你仍是能够使用before/after 映射动做来达到目的:javascript
Mapper.Initialize(cfg => { cfg.CreateMap<Source, Dest>() .BeforeMap((src, dest) => src.Value = src.Value + 10) .AfterMap((src, dest) => dest.Name = "John"); });
或者在映射时建立before/after 映射回调:java
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); });
后一种配置在映射动做先后须要用到关联的上下文信息时颇有用。app