Как не указать явно членов, для которых имя автоматически совпадает? - PullRequest
0 голосов
/ 01 февраля 2020

Я использую AutoMapper 9.0 и в приведенном ниже примере я сопоставляю Person с People объектом.

Поскольку 1 член отличается от Person to People (Person имеет Sfx в то время как у People * Суффикс ), я должен специально сопоставить остальные свойства, которые в противном случае автоматически совпадали бы.

Есть ли способ не указывать их, но для быть на карте?

    configurationExpression.CreateMap<JsonRequest, XmlRequest>()
                .ForMember(
                    dest => dest.People,
                    opt => opt.MapFrom(src => new People
                    {
                        FirstName = src.Person.FirstName,
                        MiddleName = src.Person.MiddleName,
                        LastName = src.Person.LastName,
                        Suffix = src.Person.Sfx
                    }));

1 Ответ

3 голосов
/ 01 февраля 2020

Проверяя документацию , вы сможете достичь этого путем определения отдельных сопоставлений для OutterClass и InnerClass:

var config = new MapperConfiguration(cfg => {
    cfg.CreateMap<OuterSource, OuterDest>();
    cfg.CreateMap<InnerSource, InnerDest>();
});

Имеете Вы пробовали что-то подобное?

configurationExpression.CreateMap<Person, People>()
    .ForMember(dest => dest.Suffix, opt => opt.MapFrom(src => src.sfx))
    .ReverseMap(); 

configurationExpression.CreateMap<JsonRequest, XmlRequest>()
    .ForMember(dest => dest.People, opt => opt.MapFrom(src => src.Person))
    .ReverseMap();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...