2using System.Collections;
3using System.Reflection;
5using Newtonsoft.Json.Serialization;
11 protected override JsonProperty
CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
13 JsonProperty
property = base.CreateProperty(member, memberSerialization);
14 if (!typeof(
string).IsAssignableFrom(property.PropertyType) && typeof(IEnumerable).IsAssignableFrom(property.PropertyType))
16 Predicate<object> newShouldSerialize = (
object obj) => !(property.ValueProvider.GetValue(obj) is ICollection collection) || collection.Count != 0;
17 Predicate<object> oldShouldSerialize = property.ShouldSerialize;
18 property.ShouldSerialize = ((oldShouldSerialize !=
null) ? ((Predicate<object>)((
object o) => oldShouldSerialize(o) && newShouldSerialize(o))) : newShouldSerialize);
static readonly ShouldSerializeContractResolver Instance
override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)