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的元素的值。
结果:

image.png
上一篇下一篇

猜你喜欢

热点阅读