2
我爲許多類設置了映射,但是在某些場景中,我想要應用一些自定義映射或將值應用於其他不會映射的屬性,自定義映射集中是因爲它是上下文敏感的,所以變量/屬性將不可用。映射項目時AutoMapper中的事件
是否有一個事件可以綁定到AutoMapper內,以便在Mapper.Map被調用後可以填充某些屬性?
我爲許多類設置了映射,但是在某些場景中,我想要應用一些自定義映射或將值應用於其他不會映射的屬性,自定義映射集中是因爲它是上下文敏感的,所以變量/屬性將不可用。映射項目時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做同樣的事情。