我目前将所有不同的枚举值类型映射到较低的外壳字符串值.我有多个包含重复逻辑的地图.是否可以使用以下AutoMapper代码并告诉它始终将枚举转换为小写字符串值?
Mapper.CreateMap<Class1, OutClass1>()
.ForMember(dest => dest.Enum1String, opt => opt.MapFrom(src => src.Enum1.ToString().ToLower()))
.ForMember(dest => dest.Enum2String, opt => opt.MapFrom(src => src.Enum2.ToString().ToLower()));
Mapper.CreateMap<Class2, OutClass2>()
.ForMember(dest => dest.Enum2String, opt => opt.MapFrom(src => src.Enum2.ToString().ToLower()));
解决方法:
使用自定义类型转换器告诉Automapper如何将枚举转换为字符串:
Mapper.CreateMap<Enum, String>().ConvertUsing(e => e.ToString().ToLower());