在 WebAPI 中,我注意到一个不一致的地方,它扰乱了我们的验证实践。如果您在 xml 中使用 POST 发送错误的正文/有效负载,反序列化会失败并且您会得到一个空指针。如果您以 JSON 格式发送错误的正文/有效负载,则会得到一个空对象。这是误导,我不喜欢它。有没有办法强制使用失败的 json 反序列化的空指针?
更新:我没有反序列化问题。我遇到的行为问题似乎是 DataContractSerializer 和 Json.net 序列化程序之间的差异。当 xml 反序列化失败时,payload 为空。但是,当 Json 无法反序列化时,它似乎正在实例化预期有效负载的默认实例。
错误的 xml 有效负载示例:
使用错误 json 有效负载的相同调用示例(有效负载不为空。相反,它是有效负载类的默认实例)