26 lines
821 B
C#
26 lines
821 B
C#
using Newtonsoft.Json.Serialization;
|
|
using Newtonsoft.Json;
|
|
using System.Reflection;
|
|
|
|
namespace Back.Features
|
|
{
|
|
public class IgnorePropertiesResolver : DefaultContractResolver
|
|
{
|
|
private readonly HashSet<string> ignoreProps;
|
|
public IgnorePropertiesResolver(IEnumerable<string> propNamesToIgnore)
|
|
{
|
|
this.ignoreProps = new HashSet<string>(propNamesToIgnore);
|
|
}
|
|
|
|
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
|
|
{
|
|
JsonProperty property = base.CreateProperty(member, memberSerialization);
|
|
if (this.ignoreProps.Contains(property.PropertyName))
|
|
{
|
|
property.ShouldSerialize = _ => false;
|
|
}
|
|
return property;
|
|
}
|
|
}
|
|
}
|