You're here: Snippet Directory » Microsoft .NET (152)
Language:

DeepClone()

Language: Deutsch
Programming Language: C#
Published by: Thomas
Last Update: 5/4/2006
Views: 1312

Description

Erstellt aus einem Objekt eine echte Kopie und nicht nur eine Referenz darauf.

Code

1 public static object DeepClone(object source) 2 { 3 if (source==null) 4 { 5 return null; 6 } 7 using (MemoryStream stream = new MemoryStream()) 8 { 9 BinaryFormatter formatter = new BinaryFormatter(); 10 formatter.Serialize(stream, source); 11 stream.Position = 0; 12 return formatter.Deserialize(stream); 13 } 14 } 15

2 comments

1

Was ist aber mit "verschachtelten" Typen?

public class MyType
{
private List myStrings;
}

Dann kopiert ja "nur" eine Referenz auf die alte myStrings-Liste in mein neues Objekt oder?

Das ist natürlich gefährlich....

Thursday, May 04, 2006 4:24:43 PM from Steffen Forkmann
2

Vom Ansatz her gut, aber wenn das Objekt nicht serializable ist, hat man damit auch nen Problem.

Friday, May 05, 2006 4:49:07 PM from Karsten

Add a comment

Name *  

Email (won't be displayed) *    

Website  

Comment *  

Sicherheitscode Security Code *    

RSS