【问题标题】:JSON.NET - read-only properties & support for IgnoreDataMemberJSON.NET - 只读属性和对 IgnoreDataMember 的支持
【发布时间】:2011-09-09 03:42:59
【问题描述】:

JSON.NET 是否支持IgnoreDataMember 属性,还是我必须使用JsonIgnore 来代替?这是将来会支持的东西吗?

此外,我发现 JSON.NET 正在序列化仅获取的属性 - 这是预期的行为吗?我们可以在序列化程序级别关闭它吗?

【问题讨论】:

    标签: json.net


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-03-24
      • 2021-11-24
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      • 1970-01-01
      相关资源
      最近更新 更多