C#中xml文件和对象的序列化与反序列化
来源:互联网 发布:mac finder 当前路径 编辑:程序博客网 时间:2024/05/17 02:57
为什么要做序列化和反序列化?
.Net程序执行时,对象都驻留在内存中;内存中的对象如果需要传递给其他系统使用;或者在关机时需要保存下来以便下次再次启动程序使用就需要序列化和反序列化。
System.Xml.Serialization类为我们提供了自己对象串行化(Serialize)和反串行化(Deserialize)的xml的方法,该类可以序列化的内容:
公共类的公共读写字段或者属性
XmlElement对象
XmlNode对象
Dataset对象
实现了Icollection 或IEnumerable的类
XML序列化和反序列化 封装类
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Data;using System.Xml;using System.Xml.Serialization; /**//// <summary>/// Xml序列化与反序列化/// </summary>public class XmlUtil{ 反序列化#region 反序列化 /**//// <summary> /// 反序列化 /// </summary> /// <param name="type">类型</param> /// <param name="xml">XML字符串</param> /// <returns></returns> public static object Deserialize(Type type, string xml) { try { using (StringReader sr = new StringReader(xml)) { XmlSerializer xmldes = new XmlSerializer(type); return xmldes.Deserialize(sr); } } catch (Exception e) { return null; } } /**//// <summary> /// 反序列化 /// </summary> /// <param name="type"></param> /// <param name="xml"></param> /// <returns></returns> public static object Deserialize(Type type, Stream stream) { XmlSerializer xmldes = new XmlSerializer(type); return xmldes.Deserialize(stream); } #endregion 序列化#region 序列化 /**//// <summary> /// 序列化 /// </summary> /// <param name="type">类型</param> /// <param name="obj">对象</param> /// <returns></returns> public static string Serializer(Type type, object obj) { MemoryStream Stream = new MemoryStream(); XmlSerializer xml = new XmlSerializer(type); try { //序列化对象 xml.Serialize(Stream, obj); } catch (InvalidOperationException) { throw; } Stream.Position = 0; StreamReader sr = new StreamReader(Stream); string str = sr.ReadToEnd(); sr.Dispose(); Stream.Dispose(); return str; } #endregion}
参考资料: C# xml和对象的序列化与反序列化 http://www.studyofnet.com/news/253.html
0 0
- C#中xml文件和对象的序列化与反序列化
- C#对象的 Xml序列化与反序列化
- C# 对象的xml序列化和反序列化
- C#中对象,对象集合的简单Xml序列化与反序列化(已测试)
- C# 中XML的序列化和反序列化
- C#中对象的序列化与反序列化
- C#中对象的序列化与反序列化
- C#中对象的序列化与反序列化
- C# xml和对象的序列化与反序列化
- C#中XML序列化和反序列化初探
- C#序列化与反序列化对象XML和JSON 详细代码工具
- Xml与对象之间的序列化、反序列化
- .NET对象的XML序列化和反序列化
- .NET对象的XML序列化和反序列化
- .NET对象的XML序列化和反序列化
- .NET对象的XML序列化和反序列化
- 对象的Xml序列化和反序列化
- XmlSerializer 对象的Xml序列化和反序列化
- 我是怎么招聘程序员的
- Linux学习总结 Part-IX
- 精讲Jquery
- 配置Linux虚拟机编译环境
- Linux设备驱动Hello World程序介绍
- C#中xml文件和对象的序列化与反序列化
- TYVJ 1022 进制转换
- html添加链接
- 【译】ATI图形芯片ABC
- 随机数 -- 线性同余
- lbs学习心得
- Jersey在spring环境下的实现
- DHCP_动态主机配置
- linux shell 逻辑运算符、逻辑表达式详解