XML的序列化
2017-10-23 本文已影响0人
抬头自豪
序列化是什么?
序列化是将对象状态转换为可保持或传输的格式的过程。
也就是说不用我们不用像上一次那样手动的去序列化数据,而是直接通过类对象序列化生成Xml结构的数据传输结构。
So.....事情变得轻松了很多了。
三步:1.创建需要序列化的类
2.类的是实例化
3.把实例化的对象序列化
//人物类
public class Persion {
public string Name;
public int Age;
//爱人
public Persion SweetHeart;
//在做序列化的时候必须写入默认构造器
public Persion()
{
}
//自定义构造器
public Persion(string name,int age ,Persion sweet)
{
this.Name = name;
this.Age = age;
this.SweetHeart = sweet;
}
}
//人物的集合
public class PersionInfor {
public List<Persion> PersionList = new List<Persion>();
//序列化必须显示的声明默认构造器
public PersionInfor()
{
}
}
//序列化
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//引入序列化的命名空间
using System.Xml.Serialization;
using System.Xml;
using System.IO;
public class XmlSerializerScripts : MonoBehaviour {
// Use this for initialization
void Start () {
XmlSerializer();
}
void XmlSerializer()
{
//1.实例化对象
PersionInfor persionList = new PersionInfor();
Persion Girl = new Persion("Candy", 12, null);
Persion Boy = new Persion("Jary", 13, null);
Persion Man = new Persion("Jake", 24, Girl);
Persion Women = new Persion("Mary", 26, Man);
persionList.PersionList.Add(Girl);
persionList.PersionList.Add(Boy);
persionList.PersionList.Add(Man);
persionList.PersionList.Add(Women);
//创建Xml的序列器,输入被序列化的对象类型:没有类型的话,Xml又如何区分实例的属性呢?
XmlSerializer serializer = new XmlSerializer(typeof(PersionInfor));
//创建一个
StringWriter sw = new StringWriter();
//写入到stringWrite中,stringWrite中是存储方式为StringBuilder
serializer.Serialize(sw, persionList);
//输出
print(sw);
}
}
解释:序列化对象,必须要指定写话的类型
通过类型的匹配去需找类中的属性,其对应了XML的元素:即类型中的属性即为XML的元素。
实例中属性的值对应着XML的元素的值。
结果:
