源对象中的所有字符串均以逗号分隔。我希望避免代码重复并让 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[]
.