C# 使用Newtonsoft.JSON反序列化具有默认值的枚举
我有一个json字符串,如下所示C# 使用Newtonsoft.JSON反序列化具有默认值的枚举,c#,serialization,enums,json.net,default,C#,Serialization,Enums,Json.net,Default,我有一个json字符串,如下所示 { 'EnumValue': 'Foo' } 我正在将此值反序列化为一个类,该类具有可能的值Bar和Baz 由于此枚举中不包括“Foo”,因此使用Newtonsofts JsonConverter将此字符串转换为类实例会引发错误。 是否有任何方法可以在枚举中包含一个捕获所有任意值的默认值? 代码可以在中找到。根据我的理解,这是不可能的 您可以尝试添加字符串属性并在get属性()中解析它: public SampleEnum EnumRealValue{ 得
{
'EnumValue': 'Foo'
}
我正在将此值反序列化为一个类,该类具有可能的值Bar
和Baz
由于此枚举中不包括
“Foo”
,因此使用Newtonsofts JsonConverter将此字符串转换为类实例会引发错误。是否有任何方法可以在枚举中包含一个捕获所有任意值的默认值?
代码可以在中找到。根据我的理解,这是不可能的 您可以尝试添加字符串属性并在get属性()中解析它:
public SampleEnum EnumRealValue{
得到{
if(Enum.TryParse(EnumValue,out SampleEnum result)){
返回结果;
}否则{
返回默认值(SampleEnum);
}
}
}
公共字符串枚举值{get;set;}
从我的理解来看,这是不可能的
您可以尝试添加字符串属性并在get属性()中解析它:
public SampleEnum EnumRealValue{
得到{
if(Enum.TryParse(EnumValue,out SampleEnum result)){
返回结果;
}否则{
返回默认值(SampleEnum);
}
}
}
公共字符串枚举值{get;set;}
我想这个答案会帮到你@ejwill是的,这正是我想要的。非常感谢。我想这个答案会帮助你的@ejwill是的,这就是我一直在寻找的。非常感谢。
public SampleEnum EnumRealValue {
get {
if(Enum.TryParse<SampleEnum>(EnumValue, out SampleEnum result)) {
return result;
} else {
return default(SampleEnum);
}
}
}
public string EnumValue {get; set;}