【发布时间】:2011-08-03 15:13:51
【问题描述】:
奇怪的问题 - 我正在尝试使用 AutoMapper 在 enum 和 string 之间进行映射:
Mapper.CreateMap<MyEnum, string>()
.ForMember(dest => dest, opt => opt.MapFrom(src => src.ToString()));
不用担心我在使用 .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();
}
}
同一行上的相同错误。 :(
【问题讨论】:
标签: c# enums automapper value-type reference-type