C# 序列化和反序列化
程序员文章站
2022-06-16 08:35:24
...
序列化: 将对象转化为二进制
反序列化: 将二进制转化为对象
作用: 传输数据,计算机是以二进制的形式传输数据。
模拟两台电脑的数据【传送】和【接收】
传送: 将类标记为可被序列化
[Serializable] //将类标记为可被序列化
class Person
{
private string _name;
private int _age;
private string _sex;
public string Name { get => _name; set => _name = value; }
public int Age { get => _age; set => _age = value; }
public string Sex { get => _sex; set => _sex = value; }
}
//将数据传至对方电脑
class Program
{
static void Main(string[] args)
{
//创建对象,存储数据
Person p = new Person();
p.Name = "张珊";
p.Age = 25;
p.Sex = "女";
//用文件流传输
using(FileStream fswrite=new FileStream(@"C:\Users\shen\Desktop\03.txt", FileMode.OpenOrCreate, FileAccess.Write))
{
//开始序列化对象
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fswrite, p);
}
}
}
接收:
//接收对方的二进制文件,反序列成对象
class Program
{
static void Main(string[] args)
{
//创建对象
Person p = new Person();
//用文件流读取
using(FileStream fsread=new FileStream(@"C:\Users\shen\Desktop\03.txt", FileMode.Open, FileAccess.Read))
{
//开始反序列
BinaryFormatter bf = new BinaryFormatter();
p = (Person)bf.Deserialize(fsread);
}
//输出接收的对象数据
Console.WriteLine(p.Name);
Console.WriteLine(p.Age);
Console.WriteLine(p.Sex);
}
}
上一篇: C# 序列化和反序列化
下一篇: 5G工业网关在智能工厂的应用案例