Я обновляю свой проект из AutoMapper версии 4.2.1 до 6, и в новой версии я получаю неожиданное поведение.
Классы
class Opportunity : OpportunityLite
{
}
class OpportunityLite
{
public DealerOpportunityLite DealerOpportunity { get; set; }
}
class DealerOpportunity : DealerOpportunityLite
{
public new string BranchCode { get; set; }
}
class DealerOpportunityLite
{
public string BranchCode { get; set; }
}
Конфигурация Mapper
AutoMapper.Mapper.Initialize(cfg =>
{
cfg.CreateMap<Opportunity, OpportunityLite>();
cfg.CreateMap<DealerOpportunity, DealerOpportunityLite>();
});
Версия: 4.2.1
Если я выполню следующую карту:
Opportunity oppLite = new Opportunity
{
DealerOpportunity = new DealerOpportunity
{
BranchCode = "00168"
}
};
var opp = AutoMapper.Mapper.Map<Opportunity, OpportunityLite>(oppLite);
Значение свойства "opp.DealerOpportunity.BranchCode": 00168
с версии 5.0.2 до 6.2.2
Вв этих версиях значение одного и того же свойства: null
Как я могу обновить AutoMapper, чтобы получить тот же результат версии 4.2.1 без добавления «ForMember» в конфигурации сопоставления?К сожалению, у меня так много случаев этой схемы классов.