自动映射器将typeof对象转换为枚举

时间:2018-12-10 23:05:29

标签: c# automapper

我想使用Automapper使用ForMember(?)指定一列作为要映射的对象类型的枚举值。

例如我有

class base
class A : base
class B : base

enum objTypeEnum
{
    istypebase,
    istypea,
    istypeb
}

基本包含属性

objTypeEnum TypeEnum;

在映射期间,我想解析要映射到TypeEnum属性的对象的类型:

.ForMember(dest => dest.TypeEnum,opt => opt.MapFrom())

无法确定解析器及其使用方法。使用我创建的解析器,MapFrom抱怨它需要源定义。

1 个答案:

答案 0 :(得分:0)

是的,您可以使用ForMember方法,并定义一个表达式,其参数为source。因此,使用源提供您想要在destination属性上设置的内容。

.ForMember(dest => dest.TypeEnum, 
           option => option.MapFrom(source => {
                // some logic here based on source object to convert it to enum
                // for sample:
                if (source.Prop == null)
                    return TypeEnum.A;
                else
                    return TypeEnum.B;
           }))