using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace MainShell.Filewritable { public class IgnorePropertiesResolver : DefaultContractResolver { private readonly HashSet _ignoreProps; public IgnorePropertiesResolver(IEnumerable propNames) => _ignoreProps = new HashSet(propNames); protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) { var p = base.CreateProperty(member, memberSerialization); if (_ignoreProps.Contains(p.PropertyName)) p.Ignored = true; return p; } } }