对象的通用比较逻辑

Generic comparison logic for objects

我正在研究 REST 的后端 API -
对于 POST 请求(在其中一种情况下),我需要验证用户发送的对象是否与存储在 Db 中的对象相同。

在 C# 中比较两个对象的有效方法是什么?

PS - 我希望比较逻辑 经得起时间的考验 ,即作为一个庞大的团队,我不依赖于人们在 IComparable 中添加新字段逻辑。任何人都可以向对象添加一个新的 属性,如果他们不将其添加到比较逻辑,则会跳过验证测试。

我正在考虑反序列化存储在我们数据库中的对象,并将其与用户 POSTS 的反序列化版本进行比较。

有什么想法吗?

T 上为 ValueObjects(其标识是其所有字段的对象)自动实现 IComparable<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; }        
}