Files
test_demo/MX-PD-盘古 - new/PanGu.DieBonderApp/MainShell/Filewritable/IgnorePropertiesResolver.cs

27 lines
827 B
C#
Raw Normal View History

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;
}
}
}