C# 使用Newtonsoft.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{ 得

我有一个json字符串,如下所示

{
  '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;}