更新时间:2022-02-24 23:08:33
执行此操作的两种方法:
Two ways to do this:
与ResolveUsing
内联:
Mapper.CreateMap<Result, Incident>()
.ForMember(
dest => dest.Status,
opt => opt.ResolveUsing(src =>
{
var value = (ResolveCodeEnum)Enum.Parse(
typeof(ResolveCodeEnum), src.state);
return EnumHelper.GetEnumDescription(value);
}));
带有自定义的ValueResolver
:
public class EnumValueResolver : ValueResolver<Result, string>
{
protected override string ResolveCore(Result src)
{
var value = (ResolveCodeEnum)Enum.Parse(typeof(ResolveCodeEnum), src.state);
return EnumHelper.GetEnumDescription(value);
}
}
用法:
Mapper.CreateMap<Result, Incident>()
.ForMember(
dest => dest.Status,
opt => opt.ResolveUsing<EnumValueResolver>());
我建议#2,因为它更干净.
I'd recommend #2 since it's much cleaner.