2009-11-04 6 views
3

Est-il possible de cloner en profondeur un objet dans le cadre compact? J'espérais utiliser IClonable et memberwiseclone() mais cela n'effectue qu'une copie superficielle.Clonage en profondeur dans Compact Framework

Des idées sur la façon de faire cela s'il vous plaît en utilisant C# 2.0?

Un grand merci,

Morris

Répondre

6

Je l'ai mis en place une copie de l'objet profond en faisant mes objets sérialisable [Serializable()] et en utilisant la méthode suivante.

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

Folks, Merci pour vos conseils, très appréciés. Salutations Morris – Morrislgn

+0

Soyez prudent, la sérialisation XML ne gère pas les alias ou les cycles. –

Questions connexes