27 lines
827 B
C#
27 lines
827 B
C#
|
|
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<string> _ignoreProps;
|
|||
|
|
public IgnorePropertiesResolver(IEnumerable<string> propNames) =>
|
|||
|
|
_ignoreProps = new HashSet<string>(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;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|