2009-11-04 71 views
3

是否可以在精簡框架中深入克隆對象?我希望使用IClonable和memberwiseclone(),但是這隻能執行淺拷貝。精簡框架中的深入克隆

有關如何執行此操作的任何想法,請使用C#2.0?

非常感謝,

莫里斯

回答

6

我已經讓我的對象序列化[Serializable()]和使用下面的方法實現了深刻的對象複製。

public static ObjectType CopyObject<ObjectType>(ObjectType oObject) 
{ 
    XmlSerializer oSeializer = null; 

    // Creates the serializer 
    oSeializer = new XmlSerializer(oObject.GetType()); 

    //Use the stream 
    using (MemoryStream oStream = new MemoryStream()) 
    { 
    // Serialize the object 
    oSeializer.Serialize(oStream, oObject); 

    // Set the strem position 
    oStream.Position = 0; 

    // Return the object 
    return (ObjectType)oSeializer.Deserialize(oStream); 
    } 
} 
+0

夥計們, 謝謝你的建議,大加讚賞。 Cheers Morris – Morrislgn 2009-11-06 08:46:06

+0

只要小心,XML序列化不會處理別名或循環。 – 2011-10-17 22:18:30