延迟初始化 AutoMapper

Lazily initializing AutoMapper

我一直在 ASP.NET 4.5 Webforms 应用程序上做一些性能统计,它在新部署后的初始启动时似乎有点迟钝。

我注意到的一点是创建 AutoMapper 地图确实需要一些时间。

由于这些地图很少使用,我想知道我是否可以 "delay" 创建这些地图,直到第一次需要它们 - 有点像 "lazy initialization".

在那种情况下,我必须有一些 "non-destructive"(例如不抛出异常)检查给定地图是否存在的方法 - 如果 AutoMapper 中有类似的东西?

谢谢!

您可以使用 FindTypeMapFor:

if (Mapper.FindTypeMapFor<TSource, TDestination>() == null)
    Mapper.CreateMap<TSource, TDestination>();

// Map object

还有一个采用类型参数的重载。