Странная проблема - я пытаюсь сопоставить enum и строку , используя AutoMapper:
Mapper.CreateMap<MyEnum, string>()
.ForMember(dest => dest, opt => opt.MapFrom(src => src.ToString()));
Don ' Не волнуйтесь, что я использую .ToString ()
, на самом деле я использую метод расширения для самого перечисления ( .ToDescription ()
), но я оставил его простым для ради вопроса.
Вышеупомянутое приводит к ошибке ссылки на объект , когда я просто настраиваю отображение.
Учитывая, что это работает:
string enumString = MyEnum.MyEnumType.ToString();
Я не понимаю, почему моя конфигурация AutoMapper не работает.
Может ли AutoMapper справиться с этим, я что-то делаю не так, или это ошибка AutoMapper?
Есть идеи?
РЕДАКТИРОВАТЬ
Я также пробовал использовать специальный преобразователь :
Mapper.CreateMap<MyEnum, string>()
.ForMember(dest => dest, opt => opt.ResolveUsing<MyEnumResolver>());
public class MyEnumResolver: ValueResolver<MyEnum,string>
{
protected override string ResolveCore(MyEnum source)
{
return source.ToString();
}
}
Та же ошибка в той же строке. : (