Странная проблема - я пытаюсь сопоставить между перечислением и строкой , используя AutoMapper:
Mapper.CreateMap<MyEnum, string>()
.ForMember(dest => dest, opt => opt.MapFrom(src => src.ToString()));
Не волнуйтесь, что im использует .ToString()
, на самом деле я использую метод расширения для самого перечисления (.ToDescription()
), но я сохранил его просто для вопроса.
Вышеупомянутая ошибка ссылается на объект, когда im делает просто настройку отображения.
Учитывая, что это работает:
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();
}
}
Такая же ошибка на той же строке.: (