对象与XML,序列化与反序列化
2012-09-26 20:53
162 查看
假设我们有实体类:
一、如何将Person的实例序列化为XML文件呢?XmlSerializer会帮我们完成这件事情。
二、如何将XML文件反序列化为对象实例?XmlSerializer会帮我们完成这件事情。
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,二进制流的方式,soap方式序列化对象
- 序列化反序列化对象XML文件写入Sample,简单但是有代表性
- bbossgroups-3.2 发布,支持对象xml序列化功能
- C#中的对象序列化成文本和XML案例
- (Tips)Java对象的XML序列化和反序列化 - (1)
- XmlSerializer 对象的Xml序列化和反序列化
- 以读取博客园随笔备份为例 将xml 序列化成json,再序列化成对象
- 对象,对象集合的简单Xml序列化与反序列化
- 格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出错: GetLzdtArticleResult。InnerException 消息是“反序列化对象 属于类型 lzdt.DTO.Dtolzdt[] 时出现错误。读取 XML 数据时,超出最大
- NET对象的XML序列化和反序列化
- JAXB主要用来实现对象和XML之间的序列化
- xml序列化及反序列化.net对象
- 将对象序列化为XML
- JAXB主要用来实现对象和XML之间的序列化和反序列化
- Java 对象序列化为Json 或XML
- 序列化反序列化对象XML文件写入Sample[简单但是有代表性]
- XML对象序列化
- NET对象的XML序列化和反序列化(一)
- .NET对象的XML序列化和反序列化
- DataContract方式做对象的XML序列化可能出现的BUG