c# - 属性名称不同时Automapper的使用

标签 c# properties automapper

我们使用的是 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/

相关文章:

c# - 如何在 MVC 中使用 DropDownList(ComboList)

objective-c - 在重用默认实现的同时为@property 实现自定义 setter

dependency-injection - 为通用接口(interface)和类对指定默认 Unity 类型映射

c# - 始终在 WCF 服务中使用 Json 返回 XML 字符串

c# - 确保安全的 HTTPs 连接

objective-c - 使用 BOOL 属性

c# - TableLayoutPanel 的控制列属性

c# - 映射器未初始化。使用适当的配置调用 Initialize

c# - 如何使用 AutoMapper 和 ConstructUsing 创建通用映射

c# - EF6 : Have to include in startup project?