gpt4 book ai didi

Automapper - 多次调用 CreateMap

转载 作者:行者123 更新时间:2023-12-04 00:32:23 25 4
gpt4 key购买 nike

当我多次调用相同类型的 Mapper.CreateMap 时会发生什么?

它会重写以前的 map 吗?如果是这样,如果我尝试创建已经创建的 map ,是否可以使其抛出异常?

最佳答案

当多次为同一组源和目标调用 Mapper.CreateMap 时,不会像 Mapper.CreateMap<TSource, TDestination>() 那样发生任何事情。不为映射配置设置任何扩展。
如果您像这样设置 IMappingExpression 的覆盖Mapper.CreateMap<TSource, TDestination>().ConstructUsing(x=>new TDestination(x.SomeField)) ,
不是,此映射的配置将替换为新配置。
关于您问题的第二部分,我知道验证 map 是否已创建的方法:

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);
}

关于Automapper - 多次调用 CreateMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6355381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com