类对象需要标记为序列化, 或者类标记为序列化?
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
namespace Test01
{
class Program
{
static void Main(string[] args)
{
student stu = new student();
stu.Name = "1121";
stu.No = 20;
student stubkp = stu.Clone();
stu.No = 30;
Console.WriteLine(stu.No);
Console.WriteLine(stubkp.No);
Console.Read();
}
[Serializable] // 标记为序列化
public class student
{
public string Name { get; set; }
public int No { get; set; }
public student Clone() //深拷贝
{
MemoryStream stream = new MemoryStream(); //创建其支持存储区为内存的流
BinaryFormatter formatter = new BinaryFormatter(); //以二进制形式将对象或整个链接对象图形序列化或反序列化
formatter.Serialize(stream, this); //将对象或具有指定顶级(根)的对象图形序列化为给定流。
stream.Position = 0; //获取或设置流的当前位置
return formatter.Deserialize(stream) as student; 将指定的流反序列化为对象图形
}
}
}
}
</pre><pre name="code" class="csharp">输出结果:30 20