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

.NET Core中如何通过AutoMapper实现全局字符串首尾空白自动Trim

解决方案

全局字符串Trim配置

直接在AutoMapper服务注册时添加全局成员值变换器即可,该配置会对应用内所有映射操作的string类型成员自动生效,无需单独修改每个Profile:

Startup.cs 写法(.NET Core 3.1/.NET 5)

services.AddAutoMapper(
    cfg => cfg.AddMemberValueTransformer<string>(str => str == null ? null : str.Trim()),
    typeof(Startup)
);

Program.cs 写法(.NET 6+)

builder.Services.AddAutoMapper(
    cfg => cfg.AddMemberValueTransformer<string>(str => str?.Trim()),
    typeof(Program)
);

如果需要同时将全空白字符串转换为null,可以调整逻辑:

cfg.AddMemberValueTransformer<string>(str => string.IsNullOrWhiteSpace(str) ? null : str.Trim());

原有方案不生效的原因

  1. 自定义string到string的CreateMap仅在显式调用mapper.Map<string>(源字符串)时生效,不会自动应用到其他类型映射中的string成员属性/字段上,因此看不到效果。
  2. 之前的ValueTransformer尝试未生效,是因为没有使用针对所有成员的全局变换器方法,AddMemberValueTransformer会自动匹配所有目标类型为string的成员,无需绑定到特定映射规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:57:03