Использование Automapper, когда имена свойств различны
Мы используем AutoMapper из Codeplex, и для меня целевой объект имеет все свойства, заканчивающиеся на "Field", то есть cityField, а исходный объект имеет только город.
Я могу использовать приведенный ниже код для достижения, но все свойства просто заполнены "полем", и есть 20 свойств.
.ForMember(dest => dest.cityField, opt => opt.MapFrom(origin => origin.City));
Есть ли другой способ игнорировать слово "Поле" при сопоставлении и чтобы он мог отображаться без использования .ForMember() 20 раз?
Ответы
Ответ 1
Вы можете попробовать распознать постфикс:
Mapper.Initialize(cfg => {
cfg.RecognizePostfixes("Field");
cfg.CreateMap<Source, Dest>();
});
Признание префиксов также работает локально для профилей, если это всего лишь набор карт, к которым это относится.
Ответ 2
Я думаю, вам придется реализовать свой собственный INamingConvention, чтобы обойти это.