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<int> 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;
}
网友评论