在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
使用二进制序列化和反序列化实体类 static void Main(string[] args) { List<Person> persons = new List<Person>(); Person p1 = new Person("chen", 24); Person p2 = new Person("li", 23); persons.Add(p1); persons.Add(p2); xuliehua(persons); //调用静态序列化方法 fanxuliehua(); //调用静态反序列化方法 Console.ReadKey(); } public static void xuliehua(List<Person> persons)//序列化方法 { FileStream fs = new FileStream("Person.txt", FileMode.Create);//创建一个文件流,对文件进行写入 BinaryFormatter bf = new BinaryFormatter();//使用CLR二进制格式器 bf.Serialize(fs, persons); //序列化到硬盘 fs.Close();//关闭文件流 } public static void fanxuliehua()//反序列化方法 { FileStream fs = new FileStream("Person.txt", FileMode.Open);//打开流文件 BinaryFormatter bf = new BinaryFormatter(); List<Person> persons = bf.Deserialize(fs) as List<Person>;//从硬盘反序列化 //或 Person p=(Person)bf.Deserialize(fs); 对应上面的或者 fs.Close();//关闭文件流 for (int i = 0; i < persons.Count; i++) { persons[i].say(); } } 新建一个Person类: [Serializable] class Person { private string name; public string Name { get { return name; } set { name = value; } } [NonSerialized] //age这个字段不序列化 private int age; public int Age { get { return age; } set { age = value; } } public Person() { } public Person(string name, int age) { this.name = name; this.age = age; } public void say() { Console.WriteLine("hello,my name is {0} ,I am {1} years old.", name, age); } } 运行结果为:
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论