using Newtonsoft.Json.Serialization;
public static void Main()
var foo = new Foo { Id = 123, Age = 23 };
var settings = new JsonSerializerSettings
ContractResolver = new ExcludeObsoletePropertiesResolver()
var json = JsonConvert.SerializeObject(foo, settings);
public class ExcludeObsoletePropertiesResolver : DefaultContractResolver
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
JsonProperty prop = base.CreateProperty(member, memberSerialization);
if (prop.AttributeProvider.GetAttributes(true).OfType<ObsoleteAttribute>().Any())
prop.ShouldSerialize = obj => false;
public int Id { get; set; }
public int Age { get; set; }