C#实现序列化对象到XML文档与反序列化
来源:互联网 发布:仓库数据采集器 软件 编辑:程序博客网 时间:2024/05/18 12:03
实现直接把类的一个实例化对象序列化到XML文档以及从xml文档反序列化为类的对象。
一、对象序列化为xml文档
/// <summary> /// 序列化类到xml文档 /// </summary> /// <typeparam name="T">类</typeparam> /// <param name="obj">类的对象</param> /// <param name="filePath">xml文档路径(包含文件名)</param> /// <returns>成功:true,失败:false</returns> private bool CreateXML<T>(T obj,string filePath) { XmlWriter writer = null; //声明一个xml编写器 XmlWriterSettings writerSetting = new XmlWriterSettings //声明编写器设置 { Indent=true,//定义xml格式,自动创建新的行 Encoding= UTF8Encoding.UTF8,//编码格式 }; try { //创建一个保存数据到xml文档的流 writer = XmlWriter.Create(filePath, writerSetting); } catch (Exception ex) { _logServ.Error(string.Format("创建xml文档失败:{0}",ex.Message)); return false; } XmlSerializer xser = new XmlSerializer(typeof(T)); //实例化序列化对象 try { xser.Serialize(writer, obj); //序列化对象到xml文档 } catch (Exception ex) { _logServ.Error(string.Format("创建xml文档失败:{0}", ex.Message)); return false; } finally { writer.Close(); } return true; }
二、xml文档反序列化为对象
/// <summary> /// 从 XML 文档中反序列化为对象 /// </summary> /// <param name="filePath">文档路径(包含文档名)</param> /// <param name="type">对象的类型</param> /// <returns>返回object类型</returns> public static object FromXmlString(string filePath, Type type) { string xmlString = File.ReadAllText(filePath); if (string.IsNullOrEmpty(xmlString)) { return null; } using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(xmlString))) { XmlSerializer serializer = new XmlSerializer(type); try { return serializer.Deserialize(stream); } catch { return null; } } }
注:在实例化序列化对象时可以使用单例模式来减少对象的创建,提高性能。
1 0
- C#实现序列化对象到XML文档与反序列化
- C#对象的 Xml序列化与反序列化
- XML序列化与反序列化 整理文档
- XML序列化与反序列化 整理文档
- XML序列化与反序列化 整理文档
- XML序列化与反序列化 整理文档
- C# 对象的xml序列化和反序列化
- C#中对象,对象集合的简单Xml序列化与反序列化(已测试)
- 对象与XML,序列化与反序列化
- C#对象反序列化与对象序列化
- C#实现对象的Xml格式序列化及反序列化
- C#实现对象的Xml格式序列化及反序列化
- C#实现对象的Xml格式序列化及反序列化
- C#实现对象的Xml格式序列化及反序列化
- C#实现对象的Xml格式序列化及反序列化
- C#实现对象的Xml格式序列化及反序列化
- C#实现对象的Xml格式序列化及反序列化
- C#中xml文件和对象的序列化与反序列化
- linux下nginx命令方法总结
- SQL中,无法连接到本机服务器,error:40-无法打开到SQL Server的连接(Microsoft SQL Server,错误:2)
- linux无法连接网络
- java面试——mybatis 面试题
- hibernate用like进行模糊查询时不能写单引号!!!
- C#实现序列化对象到XML文档与反序列化
- windows10 vs2013控制台工程中添加并编译cuda8.0文件操作步骤
- openssl 的使用
- ATL提供的所有转换宏
- 使用Resources.getIdentifier (name, defType,defPackage)获取资源Id
- Hibernate(6)对象的三种状态
- String与StringBuffer的区别
- IT资料地址分享
- spring定时器表达式