序列化
就是将对象转换为二进制
反序列化
就是将二进制转换为对象
作用
传输数据。数据在网络中是以二进制形式传输的。
序列化的类不能被继承
关键字
- [Serializable]:定义一个类可被序列化
[Serializable]
public class Person
{
private string _name;
private int _age;
private char _gender;
public string Name
{
get { return _name; }
set { _name = value; }
}
public int Age
{
get { return _age; }
set { _age = value; }
}
public char Gender
{
get { return _gender; }
set { _gender = value; }
}
public void SayHello()
{
Console.WriteLine("我是人类");
}
}
- 序列化一个类:Serialize
Person p = new _05序列化与反序列化.Person();
p.Name = "张三";
p.Age = 18;
p.Gender = '男';
using (FileStream fsWrite = new FileStream(@"C:\Users\lones\Desktop\新建文本文档.txt",FileMode.OpenOrCreate, FileAccess.Write))
{
//开始序列化对象
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fsWrite, p);
}
Console.WriteLine("序列化OK");
Console.ReadKey();
-反序列化一个类:deserialize
Person p;
using (FileStream fsRead = new FileStream(@"C:\Users\lones\Desktop\新建文本文档.txt", FileMode.OpenOrCreate, FileAccess.Read))
{
BinaryFormatter bfRead = new BinaryFormatter();
p = (Person)bfRead.Deserialize(fsRead);
}
Console.WriteLine(p.Name);
Console.WriteLine(p.Age);
Console.WriteLine(p.Gender);
Console.ReadKey();