JSON.NET支持
此外,我发现JSON.NET正在序列化只读属性 - 这是有意为之的行为吗?我们可以在序列化器级别上关闭它吗?
JsonIgnore
属性,但不支持IgnoreDataMember
属性。这是否在将来得到支持还不确定。此外,我发现JSON.NET正在序列化只读属性 - 这是有意为之的行为吗?我们可以在序列化器级别上关闭它吗?
JsonIgnore
属性,但不支持IgnoreDataMember
属性。这是否在将来得到支持还不确定。回答自己的问题,但认为这可能对其他人有所帮助...
我们最终使用自定义的IContractResolver
来实现这一点。我们想要DefaultContractResolver
的功能,因此我们从中派生,然后调整CreateProperty
以忽略我们不太关心的序列化内容。例如:
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;
}
}