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函数中修改源对象,并继续正常地执行映射操作。

相关内容

热门资讯

5分钟科普!极速摇一摇鱼虾蟹辅... 5分钟科普!极速摇一摇鱼虾蟹辅助,同城游辅助软件(竟然真的是有挂)-哔哩哔哩1、极速摇一摇鱼虾蟹辅助...
第4分钟外挂!川娱竞技血战辅助... 第4分钟外挂!川娱竞技血战辅助,樱花之盛挂,攻略方法(了解有挂)-哔哩哔哩川娱竞技血战辅助辅助器中分...
第四分钟详情!四川血战到底攻略... 第四分钟详情!四川血战到底攻略,老夫子拼十辅助(果然存在有挂)-哔哩哔哩四川血战到底攻略辅助器中分为...
第八分钟外挂!游戏黑科技辅助器... 第八分钟外挂!游戏黑科技辅助器,填大坑辅助软件,靠谱教程(有挂讲解)-哔哩哔哩一、游戏黑科技辅助器A...
3分钟科普!皮皮辅助软件下载,... 3分钟科普!皮皮辅助软件下载,飞驰娱乐科技软件(都是是真的挂)-哔哩哔哩1、玩家可以在飞驰娱乐科技软...
5分钟外挂!胡易决胜麻架辅助,... 5分钟外挂!胡易决胜麻架辅助,雀友会广东潮汕辅助软件,靠谱教程(有挂技术)-哔哩哔哩1、起透看视 雀...
7分钟揭幕!逍遥辅助官网,掌中... 7分钟揭幕!逍遥辅助官网,掌中乐游戏中心辅助器(果然是有挂)-哔哩哔哩1、实时掌中乐游戏中心辅助器开...
第九分钟外挂!小程序广东雀神智... 第九分钟外挂!小程序广东雀神智能插件,玖游卡五星辅助下载,规律教程(有挂详细)-哔哩哔哩1、全新机制...
第五分钟推荐!天天爱消除手机版... 第五分钟推荐!天天爱消除手机版辅助,哥哥打大a辅助工具视频(竟然有挂)-哔哩哔哩1、哥哥打大a辅助工...
第六分钟了解!乐友会辅助器,来... 第六分钟了解!乐友会辅助器,来物局潮汕辅助(切实是真的挂)-哔哩哔哩1、这是跨平台的来物局潮汕辅助黑...