对象与XML,序列化与反序列化
来源:互联网 发布:android反编译apk mac 编辑:程序博客网 时间:2024/05/03 03:03
假设我们有实体类:
public class Person { public string Name { get; set; } public int Age { get; set; } public Family Family { get; set; } } public class Family { public string Husband { get; set; } public string Child { get; set; } }
一、如何将Person的实例序列化为XML文件呢?XmlSerializer会帮我们完成这件事情。
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(Person)); /* * 对象生成XML文件 * */ Person p = new Person(); p.Name = "Elena"; p.Age = 25; Family f = new Family(); f.Husband = "Will"; f.Child = "Tom"; p.Family = f; using (System.IO.FileStream fs = new System.IO.FileStream( string.Format("{0}\\{1}", AppDomain.CurrentDomain.BaseDirectory, "text.xml"), System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite)) { serializer.Serialize(fs, p); fs.Close(); }生成后的XML文件如下:
<?xml version="1.0"?><Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Name>Elena</Name> <Age>25</Age> <Family> <Husband>Will</Husband> <Child>Tom</Child> </Family></Person>
二、如何将XML文件反序列化为对象实例?XmlSerializer会帮我们完成这件事情。
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(Person)); Person p; using (System.IO.FileStream fs = new System.IO.FileStream( string.Format("{0}\\{1}", AppDomain.CurrentDomain.BaseDirectory, "text.xml"), System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite)) { p = serializer.Deserialize(fs) as Person; fs.Close(); } if (p != null) { Console.WriteLine(string.Format("Name\t= {0}", p.Name)); Console.WriteLine(string.Format("Age\t= {0}", p.Age)); Console.WriteLine(string.Format("Husband\t= {0}", p.Family.Husband)); Console.WriteLine(string.Format("Child\t= {0}", p.Family.Child)); } Console.ReadKey();
- 对象与XML,序列化与反序列化
- C#对象的 Xml序列化与反序列化
- Xml与对象之间的序列化、反序列化
- xml类对象序列化与反序列化
- XML序列化与反序列化
- XML序列化与反序列化
- XML序列化与反序列化
- XML序列化与反序列化
- XML序列化与反序列化
- XML序列化与反序列化
- XML序列化与反序列化
- xml 序列化 与 反序列化
- XML序列化与反序列化
- XML序列化与反序列化
- XML序列化与反序列化
- 对象序列化与反序列化
- 序列化与反序列化对象
- 对象序列化与反序列化
- 基于组件模型的虚拟打印系统的研究与实现
- (droid分享)新浪微博开发系列【八】之热门微博
- Solr学习总结-Facet
- 超酷代码:来自 COM 经验的八个教训
- MFC 系统托盘图标实现,包括双击图标和右键图标菜单
- 对象与XML,序列化与反序列化
- 细说学生管理系统(二)
- (droid分享)新浪微博开发系列【九】之开发者信息显示和程序退出
- 敲代码,看人生
- 10308 - Roads in the North--不好!
- poj 1023
- request_mem_region,ioremap 和phys_to_virt()
- poj1185 炮兵阵地 状态压缩dp
- Using FXML to Create a User Interface 使用FXML创建用户界面