Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 映射项时自动映射中的事件_C#_.net_Automapper - Fatal编程技术网

C# 映射项时自动映射中的事件

C# 映射项时自动映射中的事件,c#,.net,automapper,C#,.net,Automapper,我为许多类设置了映射,但是在某些情况下,我希望应用一些自定义映射或将值应用于其他不会映射的属性,我无法集中执行此自定义映射的原因是因为它是上下文敏感的,因此变量/属性不可用 是否有可以在AutoMapper中绑定的事件,以便在调用Mapper.Map后填充某些属性?您可以创建如下映射: Action<object,object> beforeMap = (src, dst) => { Console.WriteLint("BeforeMap"); }; Mapper.Creat

我为许多类设置了映射,但是在某些情况下,我希望应用一些自定义映射或将值应用于其他不会映射的属性,我无法集中执行此自定义映射的原因是因为它是上下文敏感的,因此变量/属性不可用


是否有可以在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
你也可以用AfterMap做同样的事情

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

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