using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using System; using System.Collections.Generic; using System.Reflection; using System.Text; namespace RulesEngine.UnitTest { /// Class PrivateSetterContractResolver. /// Implements the public class PrivateSetterContractResolver : DefaultContractResolver { /// Creates a for the given MemberInfo. /// The member to create a for. /// The member's parent . /// A created for the given MemberInfo. protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) { var jsonProperty = base.CreateProperty(member, memberSerialization); if (!jsonProperty.Writable) { if (member is PropertyInfo propertyInfo) { jsonProperty.Writable = propertyInfo.GetSetMethod(true) != null; } } return jsonProperty; } } }