加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 18:41:15 所属栏目:百科 来源:网络整理
导读:JSON.NET是否支持IgnoreDataMember属性,还是必须使用JsonIgnore?这是否会在未来得到支持? 另外我发现JSON.NET正在序列化只获取的属性 – 这是预期的行为吗?这是我们可以在串行器级别关闭的东西吗? 解决方法 回答我自己的问题,但认为这可能对其他人有帮助
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;
        }
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读