c#序列化和反序列化
序列化:将对象转换为二进制
反序列化:将二进制转化为对象
作用:传输数据
步骤:
1)将一个类标记为可以被序列化,在Person这个类的上面加上[Serializable]
[Serializable] public class Person { public string Name { get; set; } public string Address { get; set; } }
序列化完整代码:
internal class Program { static void Main(string[] args) { //要将person这对象传输给对方电脑 Person person = new Person(); person.Name = "张三"; person.Address = "中国台湾"; using(FileStream fs=new FileStream(@"D:\桌面\111.txt",FileMode.OpenOrCreate,FileAccess.Write)) { //开始序列化为对象 BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(fs, person); } Console.WriteLine("序列化成功"); } } [Serializable] public class Person { public string Name { get; set; } public string Address { get; set; } }
2.反序列化,接受对方发送过来的二进制,反序列化为对象
internal class Program { static void Main(string[] args) { //接受对方发送过来的二进制,反序列化为对象 Person person = new Person(); using (FileStream fs = new FileStream(@"D:\桌面\111.txt", FileMode.OpenOrCreate, FileAccess.Read)) { //开始反序列化 BinaryFormatter bf = new BinaryFormatter(); person = (Person)bf.Deserialize(fs); } Console.WriteLine(person.Name); Console.WriteLine(person.Address); } } [Serializable] public class Person { public string Name { get; set; } public string Address { get; set; } }
输出结果: