UD2SL2——XML反序列化

序列化 就是把类对象 转换为 可存储和传输的数据
反序列化 就是把存储或受到的数据 转换为 类对象

xml序列化关键知识

  1. ​using​ 和 StreamWriter​
  2. ​XmlSerializer​ 的 Serialize序列化方法

本章代码关键字

1
2
StreamReader                    //与StreamWriter相对,是读取的文件流
xmlSerializer.Deserialize() //填入读取文件流,将该序列化字段反序列化出一个Object对象

反序列化

  1. 判断文件是否存在 File.Exists
  2. 文件流获取 StreamReader reader = new StreamReader(path)
  3. 根据文件流 XmlSerializer​ 通过 Deserialize​ 反序列化出对象

注意:List对象 如果有默认值 反序列化时 不会清空 会往后面添加!!!

判断文件是否存在

1
2
string path = Application.persistentDataPath + "/Lesson1Test.xml";
if (File.Exists(path)) { }

反序列化

首先,需要判断文件是否存在

xml反序列化关键知识

  1. ​using​ 和 StreamReader​(注意不是StreamWriter​!但是使用方法和它差不多)
  2. ​XmlSerializer​ 的 Serialize序列化方法
1
2
3
4
5
6
7
8
9
10
string path = Application.persistentDataPath + "/Lesson1Test.xml";
if (File.Exists(path))
{
using (StreamReader reader = new StreamReader(path))
{
//产生了一个序列化和反序列化的翻译机器
XmlSerializer s = new XmlSerializer(typeof(Lesson1Test));
Lesson1Test lt = s.Deserialize(reader) as Lesson1Test;
}
}

注意!要序列化的类的列表变量不可以初始化!!!因为反序列化时不会覆盖而是增加,这会造成数据重复!!!