c# – 使用AutoMapper进行小写字符串映射的通用枚举

我目前将所有不同的枚举值类型映射到较低的外壳字符串值.我有多个包含重复逻辑的地图.是否可以使用以下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());
上一篇:c# – 在自定义映射中调用IMappingEngine.Map


下一篇:c# – 简单的注入器注册自动化器