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

Dea*_*ard 4 json.net

JSON.NET是否支持该IgnoreDataMember属性,还是必须使用JsonIgnore?这是否会在未来得到支持?

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

Dea*_*ard 9

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

我们最终使用自定义实现了这一点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;
        }
    }
Run Code Online (Sandbox Code Playgroud)