我有一些映射代码如下
Mapper.CreateMap<CalculationQueryResult, CalculationViewModel>()
.ForMember(poco => poco.NomineeFee,
opt => opt.ResolveUsing<FormattedCurrencyInt>()
.FromMember(m => m.NomineeFee))
.ForMember(poco => poco.TotalContributions,
opt => opt.ResolveUsing<FormattedCurrencyInt>()
.FromMember(m => m.TotalContributions))
.ForMember(poco => poco.EquityInjection,
opt => opt.ResolveUsing<FormattedCurrencyInt>()
.FromMember(m => m.EquityInjection))
// ... SNIP Lots more members mapped with Formatted Currency Resolver
Run Code Online (Sandbox Code Playgroud)
如您所见,我使用相同的解析器映射多个成员,以将整数转换为格式化的货币字符串.我正在为绝大多数人这样做,但不是我的poco课上的所有成员.
如果我不需要继续重复这些类型,那么所有这些成员都将使用基于约定的映射进行映射.它为大量的任务编写了大量的代码.
是否有任何方法可以覆盖将int转换为单个映射的字符串的默认行为,然后执行自定义.ForMembers,我想要一些不同的东西.比如这样:
Mapper.CreateMap<CalculationQueryResult, CalculationViewModel>()
.SetDefault<int,string>(opt => opt.ResolveUsing<FormattedCurrencyInt>())
.ForMember(poco => poco.Count, x=>x.MapFrom(s => s.Count.ToString()));
Run Code Online (Sandbox Code Playgroud)
您不能按照所描述的方式将相同的值解析器应用于多个成员。
正如 Georg Patscheider 所建议的,它可以覆盖所有映射的从 int 到 string 的默认映射,但这可能会产生比原始问题更严重的副作用。
您必须逐行写出映射。
| 归档时间: |
|
| 查看次数: |
1069 次 |
| 最近记录: |