可空枚举映射器的空替换

我需要从一个可为空的枚举到一个常规的枚举编写一个映射器。现在我用这个

CreateMap<FromEnum,ToEnum>();
CreateMap<FromEnum?,ToEnum>()
    .ConvertUsing((source,dest,context) =>
    context.Mapper.Map<FromEnum,ToEnum>(source ?? FromEnum.SomeDefaultvalue));

但是我不太喜欢这种解决方案。首先,意图不是很清楚,其次,仅当源枚举具有等效的“默认值”时,它才有效。当然,我可以使用

来重写第二张地图
CreateMap<FromEnum?,context) =>
    source == null ? ToEnum.SomeDefaultvalue : context.Mapper.Map<FromEnum,ToEnum>(source.Value));

但是我认为这将进一步降低可读性。

是否有某种方法可以将null代替整个地图,而不仅仅是成员?可以只使用一张地图吗? (我从不使用不可为空的FromEnum

wssd123 回答:可空枚举映射器的空替换

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3082144.html

大家都在问