Automapper-多次调用CreateMap



调用Mapper时会发生什么。是否多次创建具有相同类型的Map?

它改写了以前的地图吗?如果是这样的话,如果我试图创建已经创建的映射,是否可以让它抛出异常?

调用Mapper时。多次为同一组源和目标创建Map,都不会发生任何事情,因为Mapper.CreateMap<TSource, TDestination>()没有为映射配置设置任何扩展。如果像这样设置IMappingExpression的覆盖CCD_ 2,如果是,则此映射的配置将替换为新配置。关于你问题的第二部分,我知道验证地图是否已经创建的方法:

public TDestination Resolve<TSource, TDestination>(TSource source)
{
     var mapped = Mapper.FindTypeMapFor(typeof(TSource), typeof(TDestination)); //this will give you a reference to existing mapping if it was created or NULL if not
     if (mapped == null)
     {
        var expression = Mapper.CreateMap<TSource, TDestination>();
     }
     return Mapper.Map<TSource, TDestination>(source);
}

最新更新