在ForAllMaps中使用ForPath的自动映射

时间:2017-11-13 09:54:53

标签: c# dictionary automapper reverse

我想在我的地图中的所有路径上设置一个条件,如果路径特定的source属性为null,我需要跳过映射。

我正在尝试做类似下面的事情:

config.CreateMap<BarChartOptions,Settings>().ReverseMap();              
config.ForAllMaps((maps, expression) => {

  var paths = maps.PathMaps;
  foreach(var path in paths) {          
    //maps.ForPath(path,o=>o.Condition(c=>c.SourceMember != null));
    //expression.ForPath(path,o=>o.Condition(c=>c.SourceMember != null));
  }

});

但是这两个选项都没有用,有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

Automapper可以选择指定它将使用哪个MemberList,基本上是设置源或目标应匹配的属性。也许是这样的?

config.ForAllMaps((maps, expression) => maps.ConfiguredMemberList = MemberList.Source);