image.png
    image.png

    序列化步骤
    image.png
    反序列化步骤
    image.png

    序列化:将对象转换为二进制。
    反序列号:将二进制转换为对象。
    作用:传输数据

    序列化:
    1、将这个类标记为可以被序列化的。

    [Serializable]//表示类可以被序列化

    1. using System;
    2. using System.IO;
    3. using System.Runtime.Serialization.Formatters.Binary;
    4. using System.Text;
    5. namespace _088_序列化和反序列化
    6. {
    7. class Program
    8. {
    9. static void Main(string[] args)
    10. {
    11. //将p这个对象序列化转成二进制
    12. Person p = new Person();
    13. p.Name = "张三";
    14. p.Age = 19;
    15. p.Gender = '男';
    16. using (FileStream fsWrite = new FileStream(@"C:\Users\46124\Desktop\CSharpTestFour.txt", FileMode.OpenOrCreate, FileAccess.Write))
    17. {
    18. //开始序列化对象 通过BinaryFormatter类中的Serialize方法实现
    19. BinaryFormatter bf1 = new BinaryFormatter();
    20. bf1.Serialize(fsWrite, p);
    21. Console.WriteLine("序列化成功");
    22. }
    23. string s = File.ReadAllText(@"C:\Users\46124\Desktop\CSharpTestFour.txt", Encoding.Default);
    24. Console.WriteLine(s);
    25. //接受二进制,反序列化成对象
    26. Person person;
    27. using (FileStream fsRead = new FileStream(@"C:\Users\46124\Desktop\CSharpTestFive.txt", FileMode.OpenOrCreate, FileAccess.Read))
    28. {
    29. //开始反序列化对象 通过BinaryFormatter类中的Deserialize方法实现
    30. BinaryFormatter bf2 = new BinaryFormatter();
    31. person = (Person)bf2.Deserialize(fsRead);
    32. }
    33. person.SayHello();
    34. Console.ReadKey();
    35. }
    36. }
    37. }
    38. using System;
    39. using System.Collections.Generic;
    40. using System.Text;
    41. namespace _088_序列化和反序列化
    42. {
    43. [Serializable]//表示类可以被序列化
    44. class Person
    45. {
    46. private string _name;
    47. public string Name { get => _name; set => _name = value; }
    48. private char _gender;
    49. public char Gender { get => _gender; set => _gender = value; }
    50. private int _age;
    51. public int Age { get => _age; set => _age = value; }
    52. public void SayHello()
    53. {
    54. Console.WriteLine("我的名字是{0},性别{1},今年{2}岁了", this.Name, this.Gender, this.Age);
    55. }
    56. }
    57. }