using System.Linq.Expressions;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Serialization;
public static void Main()
var settings = new JsonSerializerSettings
Formatting = Formatting.None,
ContractResolver = new CamelCasePropertyNamesContractResolver()
Console.WriteLine(JsonConvert.SerializeObject(test, settings));
Console.WriteLine(JObject.FromObject(test, JsonSerializer.Create(settings)).ToString(Formatting.None));
private string _propertyA;
ChangedProperties.Add(nameof(PropertyA));
public ISet<string> ChangedProperties {get;} = new HashSet<string>();