インターフェイスを実装していてIEditableObject
、前にオブジェクトのクローンを作成する方法を知っているジェネリックメソッドを作成したいと思いますBeginEdit()
。
すべてのパブリックプロパティを繰り返し、それらをキャッシュされたオブジェクトにコピーするためのリフレクションについて考えました。
誰かもっと良いアイデアがありますか?
インターフェイスを実装していてIEditableObject
、前にオブジェクトのクローンを作成する方法を知っているジェネリックメソッドを作成したいと思いますBeginEdit()
。
すべてのパブリックプロパティを繰り返し、それらをキャッシュされたオブジェクトにコピーするためのリフレクションについて考えました。
誰かもっと良いアイデアがありますか?
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を使用できます。