UnityXml序列化

Xml序列化

例:给需要序列化的类或属性添加标签

using System;
using System.Collections.Generic;
using System.Xml.Serialization;
[Serializable]
public class User
{
    [XmlAttribute("Id")]
    public int Id { get; set; }
    [XmlAttribute("Name")]
    public string Name { get; set; }
    [XmlElement("PhoneNumber")]
    //[XmlArray("PhoneNumber")]
    public List PhoneNumber { get; set; }

}

主要代码

void XmlSerialization(User user)
{
    //创建文件流
    FileStream fileStream = new FileStream(Application.dataPath + "/test.xml",  FileMode.Create,FileAccess.ReadWrite,FileShare.ReadWrite);
    //创建写入流
    StreamWriter sw = new StreamWriter(fileStream, Encoding.UTF8);
    //获取类型
    XmlSerializer xml = new XmlSerializer(user.GetType());
    //序列化至文件
    xml.Serialize(sw, user);
    //释放
    sw.Dispose();
    fileStream.Dispose();
}

Xml反序列化

主要代码

User XmlDeSerialization()
{
    //文件流
    FileStream fileStream = new FileStream(Application.dataPath + "/test.xml", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
    //获取类型
    XmlSerializer xml = new XmlSerializer(typeof(User));
    //反序列化
    User user = (User)xml.Deserialize(fileStream);
    //释放
    fileStream.Dispose();
    return user;
}

你可能感兴趣的:(UnityXml序列化)