private static JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings
TypeNameHandling = TypeNameHandling.All
public static void Main()
var serialized = JsonConvert.SerializeObject(person, jsonSerializerSettings);
Console.WriteLine(serialized);
var person2 = JsonConvert.DeserializeObject(serialized,
jsonSerializerSettings) as Person;
Console.WriteLine(person2);
Console.WriteLine(person2.Age);
Console.WriteLine($"{ex.GetType().Name}: {ex.Message}");
public class Person : IPerson
public string Name { get; set; }
public int Age { get; set; }
string Name { get; set; }