public static void Main()
var typename = typeof(What).AssemblyQualifiedName;
var json = JsonConvert.SerializeObject(new What { OK = true }, new JsonSerializerSettings{ TypeNameHandling = TypeNameHandling.Objects });
Console.WriteLine("The JSON: " + json);
var noTypeNameHandling = JsonConvert.DeserializeObject(json);
Console.WriteLine("Without TypeNameHandling: " + noTypeNameHandling.GetType().Name);
var withTypeNameHandling = JsonConvert.DeserializeObject(json, new JsonSerializerSettings{ TypeNameHandling = TypeNameHandling.Objects });
Console.WriteLine("With TypeNameHandling: " + withTypeNameHandling.GetType().Name);
public bool OK {get;set;}