为AutoMapper定义全局BeforeMap和AfterMap回调

时间:2014-11-11 18:45:36

标签: c# automapper

我知道在给定类型对的地图级别定义Before / AfterMap回调的功能。但是,我正在寻找一种解决方案,以某种方式定义一个全局的Before / AfterMap函数,它将适用于每个定义的类型映射。

在我的大多数DTO中,我都有一种机制可以防止使用BeginUpdate / EndUpdate模式临时更改通知。我希望AutoMapper在目标类型支持时包装这些调用之间的映射。

我在这里查看了问题和AutoMapper文档,但没有找到原生解决方案。

1 个答案:

答案 0 :(得分:2)

我认为我找到了一个建议的解决方案,但尚未完全测试它。

在我的所有地图都注册后,我会做这样的事情:

var typeMaps = Mapper.GetAllTypeMaps();
foreach (var typeMap in typeMaps)
{
    typeMap.AddBeforeMapAction(...);
    typeMap.AddAfterMapAction(...);
}