我正在研究REST API的后端 -
对于POST请求(在其中一个场景中),我需要验证用户发送的对象是否与存储在Db中的对象相同。
在C#中比较两个对象的有效方法是什么?
PS - 我希望比较逻辑经得起时间的考验,即成为一个庞大的团队,我不依赖于人们在IC Comparable逻辑中添加新字段。任何人都可以向对象添加新属性,如果他们不将其添加到比较逻辑中,则会跳过验证测试。
我正在考虑反序列化存储在我们数据库中的对象,并将其与用户POSTS的反序列化版本进行比较。
有什么想法吗?
答案 0 :(得分:0)
在IComparable<T>
上为ValueObjects(其身份是其所有字段的对象)自动实现T
是一种面向方面编程(AOP)的形式。
There are various Aspect frameworks for C#.
在这种情况下,我建议您使用PM> Install-Package Equals.Fody
。
使用它非常简单。
[Equals]
public class Foo
{
public int X { get; set; }
public int Y { get; set; }
}