You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Automapper单个映射配置前缀移除而非全局设置?

针对单个AutoMapper映射移除前缀的简便实现

嘿,这个需求很好解决!AutoMapper本身就支持为单个映射单独配置前缀识别规则,完全不需要全局设置,这样就不会误影响其他映射了。

你只需要把RecognizePrefixes方法直接链式调用在目标映射的CreateMap后面,而不是放在Profile构造函数的全局位置。修改后的代码如下:

public partial class MappingProfile : Profile { 
    public MappingProfile() { 
        // 仅对这个特定映射移除"Can"前缀,其他映射不受影响
        CreateMap<Candidate, CandidateVM>()
            .RecognizePrefixes("Can"); 
    } 
}

原理说明

  • 全局的RecognizePrefixes会作用于Profile中所有的映射规则,而链式调用在CreateMap之后的RecognizePrefixes,只会对当前这一对类型的映射生效。
  • AutoMapper会自动识别源对象中以"Can"开头的属性,并移除前缀后匹配目标VM中的属性(比如源的CanVote会映射到目标的Vote)。

如果之后你需要针对其他映射设置不同的前缀,同样可以用这种方式单独配置,非常灵活。

内容的提问来源于stack exchange,提问作者Michael Andrews

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:46:28