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

如何使用AutoMapper映射到包含私有字段的嵌套对象

AutoMapper 映射配置解决方案

你需要实现CreateMap<MoneyRangeSource, MoneyRangeDest>()映射的核心问题是:源类的Start、End属性为string类型,目标类对应属性为Money类型,而Money仅提供了接收string参数的构造函数。以下是两种可选实现方案:

方案1:配置全局类型转换器(多场景复用推荐)

如果你项目中多处存在string转Money的映射需求,可先配置全局类型转换规则,后续所有同名属性匹配的映射都会自动应用该规则:

// AutoMapper 配置类中添加
// 1. 配置string到Money的全局转换逻辑
CreateMap<string, Money>().ConvertUsing(str => new Money(str));
// 2. 直接配置两个业务类的映射即可,无需额外处理同名属性
CreateMap<MoneyRangeSource, MoneyRangeDest>();

方案2:单独配置当前映射的成员转换(仅单场景使用推荐)

如果只有当前这一处映射需要做string到Money的转换,可以直接在当前映射规则里单独配置成员映射逻辑:

// AutoMapper 配置类中添加
CreateMap<MoneyRangeSource, MoneyRangeDest>()
    .ForMember(dest => dest.Start, opt => opt.MapFrom(src => new Money(src.Start)))
    .ForMember(dest => dest.End, opt => opt.MapFrom(src => new Money(src.End)));

两种方案均可正常完成映射,可根据你项目的实际使用场景选择即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:36:03