美文网首页
XML的序列化

XML的序列化

作者: 抬头自豪 | 来源:发表于2017-10-23 21:39 被阅读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

    相关文章

      网友评论

          本文标题:XML的序列化

          本文链接:https://www.haomeiwen.com/subject/mtdjuxtx.html