映射动态代理时,AutoMapper不调用AfterMap

时间:2017-04-05 14:08:47

标签: c# .net automapper dynamic-proxy automapper-6

我们说我设计了一个班级A,并且我还设计了一个名为Dto的DTO班级。

如果A是使用Castle DynamicProxy生成的动态代理,则AutoMapper不会触发AfterMap

mappingConfig.CreateMap<Dto, A>()
.AfterMap
(
     (dto, a, resolutionContext) => 
     {
          // Stuff to do after automatic mapping has been already completed
     }
);

// This won't fire AfterMap
Mapper.Map(dto, aProxy);

另一方面,如果我运行以下代码,将调用AfterMap

var a = new A();
Mapper.Map(dto, a);

此外,MappingConfiguration配置为自动注册类型:

config.CreateMissingTypeMaps = true;

目前我正在使用AutoMapper 6.0.2。 我无法弄清楚为什么这不起作用

更新

经过一些试错后,我在评论config.CreateMisstingTypeMaps或将其设置为false后开始工作。

我怀疑AutoMapper正在DTO和AProxy(这是在运行时生成的类型)之间创建地图,并优先考虑DtoA 按原样。

因此,我如何配置AutoMapper以创建缺失的类型映射并支持我的场景?

0 个答案:

没有答案