using System.Collections.Generic;
private static JsonSerializerSettings JsonSettings = new JsonSerializerSettings()
TypeNameHandling = TypeNameHandling.All,
TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Full
public static void Main()
var item = new Child("hello", "world", new List<string>() { "some", "stuff" });
var checkMe = GetItem<Parent>(GetSerialized(item));
Console.WriteLine("{0} - {1}", DateTime.UtcNow, IsOfType(checkMe));
public static string GetSerialized(Child item)
return JsonConvert.SerializeObject(item, JsonSettings);
public static T GetItem<T>(string json)
return (T) GetItemFromJson(json, typeof(T));
public static object GetItemFromJson(string json, Type t)
return JsonConvert.DeserializeObject(json, t, JsonSettings);
public static bool IsOfType(Parent item)
private static bool DoCheck(Parent item)
public string A { get; set; }
public class Child : Parent
public string B { get; set; }
public ICollection<string> Stuff { get; set; }
public Child(string a, string b, ICollection<string> items)