配置 Automapper 以相同的方式映射给定类的所有字符串

问题描述 投票:0回答:0

源对象中的所有字符串均以逗号分隔。我希望避免代码重复并让 Automapper 以相同的方式处理所有

string
属性。

我是这样实现的:

CreateMap<SourceClass, TargetClass>()
    .ForMember(dest => dest.A, expression => expression.MapFrom(source => source.A.Split(",", StringSplitOptions.TrimEntries)))
    .ForMember(dest => dest.B, expression => expression.MapFrom(source => source.B.Split(",", StringSplitOptions.TrimEntries)))
    .ForMember(dest => dest.C, expression => expression.MapFrom(source => source.C.Split(",", StringSplitOptions.TrimEntries)))
    .ForMember(dest => dest.D, expression => expression.MapFrom(source => source.D.Split(",", StringSplitOptions.TrimEntries)));

但是如您所见,代码被复制了几次。如何避免?

我在单个班级的配置文件级别尝试过,但不知道该怎么做:

ValueTransformers.Add<string>(val => val.Split(",", StringSplitOptions.TrimEntries));
但它不会编译为
Split
返回
string[]
.

.net-core automapper
© www.soinside.com 2019 - 2024. All rights reserved.