Does JSON.NET support the IgnoreDataMember
attribute or do I have to use JsonIgnore
instead? Is this something that will be support in future?
Answering my own question, but thought it may be helpful to others...
We ended up implementing this using a custom IContractResolver
. We want the functionality of the DefaultContractResolver
so we derive from that then tweak CreateProperty
to ignore things we don't really care to serialise. E.g.
internal class IgnoreDataMemberContractResolver : DefaultContractResolver
{
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
{
JsonProperty property = base.CreateProperty(member, memberSerialization);
property.Ignored |= member.GetCustomAttributes(typeof(IgnoreDataMemberAttribute), true).Length > 0;
return property;
}
}