我遇到的问题是我使用的依赖项已设置
[DataMemberAttribute(IsRequired = true)]
但它并没有从一个点向另一个点发送值。
它适用于他们,因为他们使用的ServiceStack.Text
不关心DataMemberAttribute
。
但我正在使用Json.net,它会检查此属性并随后失败。
(我所讨论的依赖关系的支持已经承认他们在按需要设置它时有错。可能有一天会出现修复。但这等待的时间太长了。)
如果我创建一个新的序列化设置,例如:
,它甚至不起作用new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
该属性仍在Required.AllowNull
的方法SetPropertySettingsFromAttributes()
中设为DefaultContractResolver.cs
。
永远不会在该方法中检查序列化程序设置,也不会在引发此行为的JsonSerializerInternalReader.EndObject()
中检查:
在JSON中找不到“必需属性'...'。”
所以:
提前谢谢!
答案 0 :(得分:1)
我通过覆盖CreateProperty
的{{1}}方法解决了这个问题,并编写了如下代码:
DefaultContractResolver
不是最优雅的解决方案......但它有效,并允许我忽略任何和所有必需的检查。这可能不是最佳解决方案,但足以满足我的需求。