using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
public class DemoClass : ICloneable
{
public DemoClass DeepClone()
{
using (Stream stream = new MemoryStream())
{
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, this);
stream.Seek(0, SeekOrigin.Begin);
return formatter.Deserialize(stream) as DemoClass;
}
}
public DemoClass Clone()
{
return Clone() as DemoClass;
}
object ICloneable.Clone()
{
return this.MemberwiseClone();
}
}