using Newtonsoft.Json.Serialization;
public static void Main()
var obj = new DerivedClass { Field1 = "aaa", Field2 = "bbb" };
var json = JsonConvert.SerializeObject(obj, new JsonSerializerSettings { ContractResolver = new NoDerivedContractResolver() });
public class NoDerivedContractResolver : DefaultContractResolver
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
JsonProperty property = base.CreateProperty(member, memberSerialization);
property.ShouldSerialize = _ => property.DeclaringType != typeof(DerivedClass);
public string Field1 { get; set; }
public class DerivedClass : BaseClass
public string Field2 { get; set; }