对象的通用比较逻辑

时间:2015-05-23 05:33:03

标签: c# object serialization comparison

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

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

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

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

有什么想法吗?

1 个答案:

答案 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; }        
}