假设以下类:
public class MyEntity
{
public string FirstName;
public string LastName;
}
我想比较 的两个实例MyEntity
,并创建一个MyEntity
仅包含其他两个实例之间值差异的新实例。相等的属性将null
在新对象中产生一个值。
例如,我想要以下代码:
MyEntity entity1 = new MyEntity() { FirstName = "Jon", LastName = "Doh" };
MyEntity entity2 = new MyEntity() { FirstName = "Jon", LastName = "The Great" };
MyEntity diffEntity = CreateDiffEntity(entity1, entity2); // TODO
产生以下diffEntity
值:
{
FirstName: null,
LastName: "The Great"
}
我们可以假设所有属性都可以为空。
如果值不匹配,新对象应该包含第二个对象的属性值。
请假设我有许多类型的实体,具有不同的属性定义
所以我需要一个可以用于除 之外的其他类类型的解决方案MyEntity
,并且在将新属性添加到类时不需要更改。
最终目标是使客户端移动应用程序能够将仅包含对实体所做更改的 DTO 发送到 ASP.NET MVC WebAPI 服务器应用程序。
如何正确地做到这一点?