public static void Main()
var example = new MyExample();
Console.WriteLine($"1: {example.ExampleEnum1}");
Console.WriteLine($"2: {example.ExampleEnum2}");
Console.WriteLine($"3: {example.ExampleEnum3}");
var serializedExample = Newtonsoft.Json.JsonConvert.SerializeObject(example);
var deserializedExample = Newtonsoft.Json.JsonConvert.DeserializeObject<MyExample>(serializedExample);
Console.WriteLine($"1 (deserialized): {deserializedExample.ExampleEnum1}");
Console.WriteLine($"2 (deserialized): {deserializedExample.ExampleEnum2}");
Console.WriteLine($"3 (deserialized): {deserializedExample.ExampleEnum3}");
public enum MyEnum { X = 0, Y = 1 };
public enum MyOtherEnum { Unknown = 0, X = 1, Y = 2 };
public MyEnum ExampleEnum1 { get; set; }
public MyEnum? ExampleEnum2 { get; set; }
public MyOtherEnum ExampleEnum3 { get; set; }