Files
moadiran/Back/Features/IgnorePropertiesResolver.cs
mmrbnjd d67a9ae440 ...
2024-07-09 23:04:19 +03:30

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