是否有人可以將bool
屬性映射到enum
類型的示例?我擔心null
成員在despedia。 我需要這樣的東西:如何正確使用automapper將bool映射到枚舉?
null
屬性值爲第一個枚舉值;
0
第二;
1
到最後;
是否有人可以將bool
屬性映射到enum
類型的示例?我擔心null
成員在despedia。 我需要這樣的東西:如何正確使用automapper將bool映射到枚舉?
null
屬性值爲第一個枚舉值;
0
第二;
1
到最後;
Unfortutely,因爲這裏表達AutoMapper null source value and custom type converter, fails to map?你不能「空」直接映射到東西,因爲地圖空的將始終返回默認值(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
}
嘗試像下面的代碼:
枚舉:
public enum BoolVal {
NullVal = -1 ,
FalseVal = 0 ,
TrueVal = 1
}
申報價值:
var val = BoolVal.NullVal; // OR (BoolVal.FalseVal ,BoolVal.TrueVal)
測試值:
// This will return => null or true or false
bool? value1 = (val == BoolVal.NullVal ? null : (bool?)Convert.ToBoolean(val));
很好的解決方案,謝謝! – user3818229