我们使用的是 Codeplex 的 AutoMapper,对我而言,目标对象具有所有以“Field”结尾的属性,即 cityField,而源对象只有城市。
我可以使用下面的代码来实现,但是所有的属性都只是以'Field'为后缀并且有20个属性。
.ForMember(dest => dest.cityField, opt => opt.MapFrom(origin => origin.City));
有没有其他方法可以在映射时忽略“Field”字,这样它就可以在不使用 .ForMember() 20 次的情况下进行映射?
最佳答案
您可以尝试识别后缀:
Mapper.Initialize(cfg => {
cfg.RecognizePostfixes("Field");
cfg.CreateMap<Source, Dest>();
});
识别前缀也适用于配置文件本地,如果它只是适用于一组 map 的话。
关于c# - 属性名称不同时Automapper的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2186160/