次のソースを考えると:
public class SourceBase { public string TheString { get; set; } }
public class SourceDerived : SourceBase { }
目的地:
public class DestBase { public string MyString { get; set; } }
public class DestDerived : DestBase { }
そして、このマッピング:
CreateMap<SourceBase, DestBase>()
.ForMember(dest => dest.MyString, o => o.MapFrom(x => x.TheString))
.Include<SourceDerived, DestDerived>();
CreateMap<SourceDerived, DestDerived>();
Mapper.AssertConfigurationIsValid(); // Exception is thrown here
ただし、これにより、MyString が DestDerived にマップされていないというマッピング エラーが発生します。何を与える?すべての派生型で基底クラスのプロパティのマッピングを本当に繰り返す必要がありますか (実際のコードには複数のサブクラスがあります)。
編集:
正確な例外は、DestDerived の次の 1 つのプロパティをマップできませんでした: MyString です。カスタム マッピング式を追加するか、 DestDerived のプロパティを無視するか、名前を変更します。