使用AutoMapper的通用枚举到小写字符串映射

时间:2012-07-25 18:13:57

标签: 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()));

1 个答案:

答案 0 :(得分:4)

使用自定义类型转换器告诉Automapper如何将枚举转换为字符串:

Mapper.CreateMap<Enum, String>().ConvertUsing(e => e.ToString().ToLower());