1.引用命名空间
using System.Runtime.Serialization.Formatters.Binary;//引入命名空间
2.类必须是可序列化的
[Serializable] //使此类可序列化
public class Person
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private string gender;
public string Gender
{
get { return gender; }
set { gender = value; }
}
private int age;
public int Age
{
get { return age; }
set { age = value; }
}
}
3.运用序列化器进行序列化
static void Main(string[] args)
{
Person p = new Person();//实例化对象
p.Name = "张三";
p.Gender = "男";
p.Age = 18;
//对这个对象进行序列化
//创建实例化器
BinaryFormatter bf = new BinaryFormatter();
using (FileStream fsWrite = new FileStream("1.txt",FileMode.Create,FileAccess.Write))
{
bf.Serialize(fsWrite,p);//序列化
}
Console.WriteLine("序列化成功!");
Console.ReadLine();
}
4.反序列化
BinaryFormatter bf = new BinaryFormatter();
using (FileStream fsRead = new FileStream("1.txt", FileMode.Open, FileAccess.Read))
{
Person p = bf.Deserialize(fsRead) as Person;//反序列化
if (p != null)
{
Console.WriteLine("姓名是:{0},性别是:{1},年龄是:{2}", p.Name, p.Gender, p.Age);
}
}
Console.ReadLine();