我们说我设计了一个班级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
(这是在运行时生成的类型)之间创建地图,并优先考虑Dto
和A
按原样。
因此,我如何配置AutoMapper以创建缺失的类型映射并支持我的场景?