序列化就是将对象转化为二进制,反序列化就是将二进制形式的数据转换成原来的数据类型,序列化和反序列用于传输数据,例如网络数据的传输。
下面是一个序列化和反序列化的例子:(模拟传输数据)
//序列化:将对象转换为二进制
//服务器端
//假设一个Person类,有Name,Age,Gender属性
Person per = new Person();
per.Name = "张三";
per.Age = 10;
per.Gender = '男';
using (FileStream fsWrite = new FileStream(@"C:\Users\Administrator\Desktop\序列化.txt", FileMode.OpenOrCreate, FileAccess.Write))
{
// //创建序列化对象
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fsWrite, per);
}
Console.WriteLine("序列化成功");
Console.ReadKey();
//接收端
////反序列化:将二进制转换为对象
Person per;
using (FileStream fsRead = new FileStream(@"C:\Users\Administrator\Desktop\序列化.txt", FileMode.Open, FileAccess.Read))
{
BinaryFormatter bf = new BinaryFormatter();
per = (Person)bf.Deserialize(fsRead);
}
Console.WriteLine(per.Name);
Console.WriteLine(per.Gender);
Console.WriteLine(per.Age);
Console.ReadKey();
|