Модель для AutoMap:
public class OuterSource
{
public int Value { get; set; }
public InnerSource Inner { get; set; }
}
public class InnerSource
{
public int OtherValue { get; set; }
}
public class OuterDest
{
public int Value { get; set; }
public InnerDest Inner { get; set; }
}
public class InnerDest
{
public int OtherValue { get; set; }
}
Я обнаружил, что если я закомментирую CreateMap
для внутреннего типа. Вложенные карты все еще работают. Я хотел бы понять, почему это работает, поскольку это не ясно указано в документации.
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<OuterSource, OuterDest>();
// cfg.CreateMap<InnerSource, InnerDest>(); // <-- don't need this
});
config.AssertConfigurationIsValid();
var source = new OuterSource
{
Value = 5,
Inner = new InnerSource {OtherValue = 15}
};
var mapper = config.CreateMapper();
var dest = mapper.Map<OuterSource, OuterDest>(source);
Примечание: я использую AutoMapper версии 8.1.0