Reputation: 4224
I currently map all of my differnt enum value types to a lower cased string value. I have multiple maps that contain duplicate logic in them. Is there away to take the following AutoMapper code and tell it to always convert enums to lowercased string values?
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()));
Upvotes: 6
Views: 2395
Reputation: 14687
Use a custom type converter that tells Automapper how enums should be converted to strings:
Mapper.CreateMap<Enum, String>().ConvertUsing(e => e.ToString().ToLower());
Upvotes: 7