有人可以显示将bool属性映射为枚举类型的示例吗?我担心空成员的数量减少.
我需要这样的东西:
将属性值空为第一个枚举值;
0至一秒;
1至最后;
解决方法:
不幸的是,如此处AutoMapper null source value and custom type converter, fails to map?所示,您不能直接将“ null”映射到某些内容,因为null映射将始终返回default(T),因此您无法执行以下操作:
CreateMap<bool?, MyStrangeEnum>()
.ConvertUsing(boolValue => boolValue == null
? MyStrangeEnum.NullValue
: boolValue.Value ? MyStrangeEnum.True : MyStrangeEnum.False);
另一方面,如果映射对象属性,它将起作用:
public class MapperConfig : Profile
{
protected override void Configure()
{
CreateMap<Foo, Bar>()
.ForMember(dest => dest.TestValue,
e => e.MapFrom(source =>
source.TestValue == null
? MyStrangeEnum.NullValue
: source.TestValue.Value ? MyStrangeEnum.True : MyStrangeEnum.False));
}
}
public class Foo
{
public Foo()
{
TestValue = true;
}
public bool? TestValue { get; set; }
}
public class Bar
{
public MyStrangeEnum TestValue { get; set; }
}
public enum MyStrangeEnum
{
NullValue = -1,
False = 0,
True = 1
}