1.C# 序列化和反序列化
序列化:就是将对象转换为二进制;
反序列化:就是将二进制转换为对象。
作用:传输数据。
将一个类标记为可以序列化:在类的上方标记“[Serializable]”。
2.C# 序列化代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace 序列化和反序列化
{
internal class Program
{
static void Main(string[] args)
{
Person person = new Person();
person.Age = 12;
person.Name = "张三";
using (FileStream fileStream=new FileStream(@"C:\Users\86178\Desktop\new.txt",FileMode.OpenOrCreate,FileAccess.Write))
{
//开始序列化对象
BinaryFormatter binaryFormatter=new BinaryFormatter();
binaryFormatter.Serialize(fileStream, person);
}
Console.WriteLine("序列化成功");
Console.ReadKey();
}
}
[Serializable]
public class Person
{
private string _name;
public string Name { get { return _name; } set { _name = value; } }
public int _age;
public int Age { get { return _age; } set { _age = value; } }
}
}
3.C# 反序列化代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace 序列化和反序列化
{
internal class Program
{
static void Main(string[] args)
{
//接收对方发送过来的二进制,反序列化成对象
Person person1;
using (FileStream fileStream = new FileStream(@"C:\Users\86178\Desktop\new.txt", FileMode.OpenOrCreate, FileAccess.Read))
{
BinaryFormatter formatter = new BinaryFormatter();
person1 = (Person)formatter.Deserialize(fileStream);
}
Console.WriteLine(person1.Name);//张三
Console.WriteLine(person1.Age);//12
Console.ReadKey();
}
}
[Serializable]
public class Person
{
private string _name;
public string Name { get { return _name; } set { _name = value; } }
public int _age;
public int Age { get { return _age; } set { _age = value; } }
}
}