Automapper и иерархия классов

Учитывая следующие источники:

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. Что дает? Действительно ли мне нужно повторять сопоставления для свойств базового класса во всех производных типах (у меня есть более одного подкласса в моем реальном коде).

РЕДАКТИРОВАТЬ:

Точное исключение - Следующие 1 свойства на DestDerived не может быть сопоставлен: MyString. Добавьте настраиваемое выражение сопоставления, игнорируйте или переименуйте свойство в DestDerived .

6
задан Andy 10 May 2011 в 13:20
поделиться