我AfterMap()
暂时使用了这个功能。我希望有人有更好的解决方案。
为简单起见,如果我将源类和目标类减少到
public class Source {
public string Value {get;set;}
}
public class Destination{
public string Value {get;set;}
private bool _reset;
public Destination(bool reset = false){
_reset = reset;
}
public void TryReset(){
if(!_reset) return;
Value = string.Empty;
}
}
我AfterMap()
在 Mapping 配置中添加了一个来调用 reset 方法。
Mapper.CreateMap<Source, Destination>()
.AfterMap( (source, dest) => dest.TryReset());
在控制器中,我将请求中的重置标志直接传递为
var destination = Mapper.Map(new Source { Value ="Hello" },
new Destination(flag));