110,534
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
namespace DeSerializable
{
public class Dog : Exception
{
public readonly string Name = "David Lee";
public static Dog Instrance = new Dog();
private Dog()
{
}
public override string ToString()
{
return string.Format("{0}小狗汪汪叫!", Name);
}
}
class Program
{
static void Main(string[] args)
{
Dog dog = DeepCopyDog();
Dog originalDog = Dog.Instrance;
if (ReferenceEquals(dog,originalDog))
{
Console.WriteLine("深拷贝失败");
}
else
{
Console.WriteLine("拷贝成功,恭喜");
}
Console.ReadLine();
}
public static Dog DeepCopyDog()
{
Dog dog = Dog.Instrance;
using (MemoryStream ms = new MemoryStream())
{
BinaryFormatter bfFormatter = new BinaryFormatter();
bfFormatter.Serialize(ms, dog);
ms.Position = ms.Seek(0, SeekOrigin.Begin);
return bfFormatter.Deserialize(ms) as Dog;
}
}
}
}