JSON.NET – IgnoreDataMember的只读属性和支持

前端之家收集整理的这篇文章主要介绍了JSON.NET – IgnoreDataMember的只读属性和支持前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_1@
JSON.NET是否支持IgnoreDataMember属性,还是必须使用JsonIgnore?这是否会在未来得到支持

另外我发现JSON.NET正在序列化只获取属性 – 这是预期的行为吗?这是我们可以在串行器级别关闭的东西吗?

解决方法

回答我自己的问题,但认为这可能对其他人有帮助……

我们最终使用自定义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;
        }
    }

猜你在找的Json相关文章