Automapper-aftermap怪异行为
创始人
2024-09-23 10:00:15
0

在AfterMap函数内避免对源对象进行修改

当使用Automapper进行映射时,有时AfterMap函数可能会出现奇怪的行为,例如修改源对象或无法正确执行。这可能是由于Automapper没有正确地处理对象引用或值类型的原始值。

一个简单的解决方法是在AfterMap函数内避免对源对象进行修改。相反,您应该创建一个新的目标对象,将源对象的属性映射到该对象,然后将其返回。这可以通过以下示例代码来完成:

public class SourceObject {
    public int Id { get; set; }
}

public class TargetObject {
    public int Id { get; set; }
}

//映射配置
var config = new MapperConfiguration(cfg => {
    cfg.CreateMap()
        .AfterMap((src, dest) => {
            //避免在此处修改源对象
            var newTarget = new TargetObject {
                Id = dest.Id
            };
            //继续为新目标对象设置其他属性
            //...
            return newTarget;
        });
});

//使用Automapper进行映射
var source = new SourceObject { Id = 1 };
var mapper = config.CreateMapper();
var target = mapper.Map(source);

//现在可以安全地对目标对象进行操作
target.Id = 2;
//...

通过创建一个新的目标对象并将属性映射到该对象,您可以避免在AfterMap函数中修改源对象,并继续正常地执行映射操作。

相关内容

热门资讯

第五分钟外挂!逍遥辅助器手机版... 第五分钟外挂!逍遥辅助器手机版,四川途游辅助软件下载,详细教程(有挂教程)-哔哩哔哩1、四川途游辅助...
第7分钟外挂!阿拉游戏中心有辅... 第7分钟外挂!阿拉游戏中心有辅助挂吗,约局吧辅助,wepoke教程(了解有挂)-哔哩哔哩1、这是跨平...
第七分钟外挂!财神十三章有哪些... 第七分钟外挂!财神十三章有哪些辅助功能,微信中至有辅助吗,wpk教程(竟然有挂)-哔哩哔哩财神十三章...
十分钟外挂!微乐陕西小程序破解... 十分钟外挂!微乐陕西小程序破解器,边锋老友辅助,科技教程(有挂辅助)-哔哩哔哩1、每一步都需要思考,...
九分钟外挂!游戏大厅浙江脚本辅... 九分钟外挂!游戏大厅浙江脚本辅助,方片十三张脚本,安装教程(有挂方法)-哔哩哔哩1、进入到游戏大厅浙...
8分钟外挂!九九山城万州版辅助... 8分钟外挂!九九山城万州版辅助,指尖四川辅助脚本,解说技巧(存在有挂)-哔哩哔哩1、下载好九九山城万...
6分钟外挂!威信茶馆app插件... 6分钟外挂!威信茶馆app插件,微信中至有辅助吗,教你攻略(有挂功能)-哔哩哔哩1)微信中至有辅助吗...
7分钟外挂!闲逸辅助插件,闲聚... 7分钟外挂!闲逸辅助插件,闲聚辅助器,AI教程(果真有挂)-哔哩哔哩1、该软件可以轻松地帮助玩家将闲...
第2分钟外挂!哈狗智能辅助,衢... 第2分钟外挂!哈狗智能辅助,衢州都莱辅助器是真是假,扑克教程(有挂神器)-哔哩哔哩1、打开软件启动之...
第2分钟外挂!丫丫打锅子辅助,... 第2分钟外挂!丫丫打锅子辅助,贪玩互娱辅助,技巧教程(有挂方式)-哔哩哔哩1、实时丫丫打锅子辅助开挂...