创建用于缓存实体的通用方法

时间:2009-07-29 06:12:00

标签: c# ieditableobject

我正在实现IEditableObject接口,我想制作一个通用方法,知道如何在BeginEdit()之前克隆该对象。

我想过反射迭代所有公共属性并将它们复制到缓存对象。

任何人都有更好的主意吗?

1 个答案:

答案 0 :(得分:1)

 public object Clone()
 {
     DataContractSerializer serializer = new DataContractSerializer(this.GetType());
     using (MemoryStream memStream = new MemoryStream())
     {
         serializer.WriteObject(memStream, this);
         memStream.Position = 0;
         return serializer.ReadObject(memStream);
     }
  }

上面是通用克隆方法,如果你知道你的对象是datacontract可序列化的,或者如果xml可序列化你可以使用XmlSerializer