我们正在使用Codeplex的AutoMapper,对我来说,目标对象的所有属性都以'Field'结尾,即cityField,而源对象只有city。
我可以使用下面的代码来实现,但是所有属性都只是以'Field'为后缀,并且有20个属性。
.ForMember(dest => dest.cityField, opt => opt.MapFrom(origin => origin.City));
在映射时是否有其他方法可以忽略'Field'字样,因此它可以在不使用.ForMember()的情况下进行映射20次?
答案 0 :(得分:18)
您可以尝试识别后缀:
Mapper.Initialize(cfg => {
cfg.RecognizePostfixes("Field");
cfg.CreateMap<Source, Dest>();
});
识别前缀也适用于个人资料本地,如果它只是一组适用的地图。
答案 1 :(得分:3)
我认为您必须实施自己的INamingConvention才能解决此问题。