如何使用显式成员映射配置AutoMapper for Polymorphism?

考虑以下基本情况:

Mapper.CreateMap() .Include() .Include(); Mapper.CreateMap() .ForMember( m => m.P0, a => a.MapFrom( x => x.Prop0 ) ) .ForMember( m => m.P1, a => a.MapFrom( x => x.Prop1 ) ); Mapper.CreateMap() .ForMember( m => m.P0, a => a.MapFrom( x => x.Prop0 ) ) .ForMember( m => m.P2, a => a.MapFrom( x => x.Prop2 ) ); Mapper.AssertConfigurationIsValid(); FromBase[] froms = { new FromD1() { Prop0 = 10, Prop1 = 11 }, new FromD2() { Prop0 = 20, Prop2 = 22 } }; var tos = Mapper.Map( froms ); 

附:

 public class FromBase { public int Prop0 { get; set; } } public class FromD1 : FromBase { public int Prop1 { get; set; } } public class FromD2 : FromBase { public int Prop2 { get; set; } } public class ToBase { public int P0 { get; set; } } public class ToD1 : ToBase { public int P1 { get; set; } } public class ToD2 : ToBase { public int P2 { get; set; } } 

它看起来像Automapper的doc上的示例 。

但是Mapper.AssertConfigurationIsValid()断言抛出:

AutoMapperConfigurationException:“未映射ToBase上的以下1个属性:P0在FromBase上添加自定义映射表达式,忽略或重命名该属性。”

除非我遗漏了某些内容,与示例的唯一区别是我不依赖于约定,使用ForMember手动映射属性。 还有几个派生类。 不知道这些会是怎么回事,但我想不出别的什么。

任何的想法?

虽然配置validation断言失败,但映射实际上工作正常。