c#比较对象而不创建dto

时间:2016-11-10 23:15:35

标签: c# entity-framework-6 postsharp serializable

目前我正在创建一个DTO对象来比较新旧值。当它是一个对象时它很好,但将来它会改变。我尝试为extension methodserialize创建一个深层副本,但deserialize正在抛出错误。

  

类型   ' PostSharp.Patterns.Model.NotifyPropertyChanged.ChangeTracking.ChildPropertyChangedProcessor'   在Assembly' PostSharp.Patterns.Model,Version = 4.2.28.0,   Culture = neutral,PublicKeyToken = e7f631e6ce13f078'未标记为   序列化。 (SerializationException)

这是我的扩展方法,错误发生在PostSharp

formatter.Serialize(stream, source)

有没有办法解决这个错误,还是我必须以另一种方式做到这一点?如果我必须找到另一种方法,我应该采取什么方法?

2 个答案:

答案 0 :(得分:2)

您也可以使用AutoMapper :(无论如何,每个应用都应该使用它,那么有什么危害呢?)

df1, df2, .., df100

答案 1 :(得分:1)

对基于反射的深度对象图比较库有很多参考; https://github.com/GregFinzer/Compare-Net-Objects作为示例应该在没有序列化的情况下执行您想要的操作