解决方法
是的,可以完成,但是您必须使用映射配置中的Condition()指定何时跳过目标属性.
这是一个例子.考虑以下类:
public class Source { public string Text { get; set; } public bool Map { get; set; } } public class Destination { public string Text { get; set; } }
第一个地图不会覆盖destination.Text,但是第二个将会.
Mapper.CreateMap<Source,Destination>() .ForMember(dest => dest.Text,opt => opt.Condition(src => src.Map)); var source = new Source { Text = "Do not map",Map = false }; var destination = new Destination { Text = "Leave me alone" }; Mapper.Map(source,destination); source.Map = true; var destination2 = new Destination { Text = "I'll be overwritten" }; Mapper.Map(source,destination2);
原文地址:https://www.jb51.cc/csharp/95906.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。