映射项目时AutoMapper中的事件

我为许多类设置了映射,但是在某些场景中,我想要应用一些自定义映射或将值应用于其他不会映射的属性,自定义映射集中是因为它是上下文敏感的,所以变量/属性将不可用。映射项目时AutoMapper中的事件

是否有一个事件可以绑定到AutoMapper内,以便在Mapper.Map被调用后可以填充某些属性?

回答:

你可以像下面创建映射:

Action<object,object> beforeMap = (src, dst) => { Console.WriteLint("BeforeMap"); }; 

Mapper.CreateMap<Src, Dst>().BeforeMap((src, dst) =>

{

if(beforeMap!=null)

beforeMap(src,dst);

});

Mapper.Map(new Src(), new Dst()); // - output: BeforeMap

,每当你需要上下文敏感BeforeMap处理程序中设置新的beforeMap。如果您不需要额外的操作,只需将beforeMap设置为null即可。

beforeMap = (src, dst) => { Console.WriteLint("NEW BeforeMap") }; 

Mapper.Map(new Src(), new Dst()); // - output: NEW BeforeMap

你可以用AfterMap做同样的事情。

以上是 映射项目时AutoMapper中的事件 的全部内容, 来源链接: utcz.com/qa/265462.html

回到顶部