C#对象的 Xml序列化与反序列化
using System.Collections.Generic;
public class Person
{
private string name;
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public string Sex;
public int Age = 31;
public List<Course> Courses=new List<Course>();
public Person()
{
}
public Person(string Name)
{
name = Name;
Sex = "男";
}
}
public class Course
{
public string Name;
public string Description;
public Course()
{
}
public Course(string name, string description)
{
Name = name;
Description = description;
}
}
/// <summary>
/// 序列化
/// </summary>
/// <param name="filePath"></param>
public void Serialiaze(String filePath)
{
Person c = new Person("James Chen");
c.Courses.Add(new Course("高等数学","思维工具"));
c.Courses.Add(new Course("大学英语", "交流工具"));
c.Courses.Add(new Course("离散数学", "计算机理论"));
XmlSerializer xs = new XmlSerializer(typeof(Person));
Stream stream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
xs.Serialize(stream, c);
stream.Close();
}
/// <summary>
/// 反序列化
/// </summary>
/// <param name="filePath"></param>
public void Deserialize(String filePath)
{
XmlSerializer xs = new XmlSerializer(typeof(Person));
Stream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Person p = (Person)xs.Deserialize(stream);
Response.Write(p.Name+"<br>");
Response.Write(p.Age.ToString() + "<br>");
Response.Write(p.Courses.Count.ToString());
stream.Close();
}<?xml version="1.0"?>
<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Sex>男</Sex>
<Age>31</Age>
<Courses>
<Course>
<Name>高等数学</Name>
<Description>思维工具</Description>
</Course>
<Course>
<Name>大学英语</Name>
<Description>交流工具</Description>
</Course>
<Course>
<Name>离散数学</Name>
<Description>计算机理论</Description>
</Course>
</Courses>
<Name>James Chen</Name>
</Person>
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hb_cattle/archive/2008/01/05/2026373.aspx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述