AutoMapper наследование с «новым» модификатором - PullRequest
0 голосов
/ 24 мая 2018

Я обновляю свой проект из 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» в конфигурации сопоставления?К сожалению, у меня так много случаев этой схемы классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...