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

能否在AutoMapper映射配置中仅为单个CreateMap调用使用ClearPrefixes()

针对单个AutoMapper映射清除Get*前缀的解决方案

要实现仅对指定映射关闭Get*前缀的自动识别,无需全局修改前缀规则,直接在单个映射配置中调整即可:

  • 如果你想完全清除该映射的所有默认前缀识别(包括Get、Is、Has等),直接在CreateMap后调用ClearPrefixes()方法:

    var mapperConfig = new MapperConfiguration(cfg =>
    {
        // 保留原有全局配置和其他映射
        cfg.CreateMap<OtherSource, OtherTarget>();
        // ... 其他大量CreateMap调用
    
        // 针对目标映射清除前缀
        cfg.CreateMap<Source, Target>()
            .ClearPrefixes();
    });
    
  • 如果你只想移除Get前缀的识别,保留其他默认前缀(如Is、Has),可以先清除所有前缀,再重新添加需要保留的:

    cfg.CreateMap<Source, Target>()
        .ClearPrefixes()
        .RecognizePrefixes("Is", "Has");
    

这样配置后,AutoMapper在处理Source到Target的映射时,不会将GetProp去掉前缀匹配到Prop,而是直接匹配同名的GetProp属性,完美解决字符串赋值问题,同时不会影响其他映射的前缀规则。未来新增的同类命名属性也会自动遵循这个映射规则,无需逐个添加Ignore()。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:43:16