对象的通用比较逻辑
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; }
}
我正在研究 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; }
}