【发布时间】:2015-05-23 05:33:03
【问题描述】:
我正在处理 REST API 的后端 -
对于 POST 请求(在其中一种情况下),我需要验证用户发送的对象是否与 Db 中存储的对象相同。
比较两者的有效方法是什么C# 中的对象?
PS - 我希望比较逻辑经得起时间的考验,即作为一个庞大的团队,我不依赖人们在 IComparable 逻辑中添加新字段。任何人都可以向对象添加新属性,如果他们不将新属性添加到比较逻辑中,则会跳过验证测试。
我正在考虑反序列化存储在我们数据库中的对象,并将其与用户发布的反序列化版本进行比较。
有什么想法吗?
【问题讨论】:
-
对象是否具有唯一标识每个实例的属性?类似于数据库中的主键?或者是否有任何属性必须是唯一的?
-
是的,有。这有什么帮助?
-
这很有帮助,因为您只需要比较属于主键的属性以确定唯一性。
-
啊,好吧,我当时没有解释清楚。让我们说一个场景,如果您尝试更新对象中的任何属性,我想进行验证。由于这是一个 POST 调用,因此如果在我的对象恰好处于终端状态时修改了任何属性,我不想调用更新存储过程。所以,它不仅仅是主键。
-
从API的角度来看,我想让用户知道他不能修改处于终端状态的子资源。
标签: c# object serialization comparison