1

我正在实现该IEditableObject接口,并且我想创建一个通用方法,该方法将知道如何在之前克隆对象BeginEdit()

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

有人有更好的主意吗?

4

1 回答 1

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);
     }
  }

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

于 2009-07-29T06:16:04.103 回答