XML 序列化与反序列化
XML序列化与反序列化
1、将一个类转化为XML文件
/// <summary>
/// 对象序列化成XML文件
/// </summary>
/// <param name="type">对象类型</param>
/// <param name="obj">对象</param>
/// <param name="fileName">序列化的XML文件路径</param>
public static void Serialize(Type type, object obj, string fileName)
{
if (File.Exists(fileName))
File.Delete(fileName);
//创建流
using (var fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
//创建XML序列化器,需要指定对象的类型
var serializer = new XmlSerializer(type);
//序列化执行
serializer.Serialize(fs, obj);
}
}
序列时,可以对类、属性设置标记,选择哪些属性序列化、序列化字段别名、设置属性是否属于节点内属性还是以子节点呈现等等。
2、将XML反序列为指定类对象
/// <summary>
/// XML文件反序列化成对象文件
/// </summary>
/// <param name="type">对象类型</param>
/// <param name="fileName">反序列化的XML文件路径</param>
/// <returns>对象</returns>
public static object DeSerialize(Type type, string fileName)
{
if (!File.Exists(fileName))
{
MessageBox.Show(fileName + " File Doesn't Exist!");
} object obj;
using (var fs = new FileStream(fileName, FileMode.Open))
{
var serializer = new XmlSerializer(type);
obj = serializer.Deserialize(fs);
} return obj;
}
XML 序列化与反序列化的更多相关文章
- XmlSerializer 对象的Xml序列化和反序列化
http://www.cnblogs.com/yukaizhao/archive/2011/07/22/xml-serialization.html 这篇随笔对应的.Net命名空间是System.Xm ...
- C#的XML序列化及反序列化
webservice在工作中用到的很多,基本都是以XML格式问通讯内容,其中最关键的就是XML串的序列化及反序列化. XML的运用中有两种信息传递,一种为XML的请求信息,另一种为返回信息,要运用XM ...
- .NET XML序列化与反序列化
闲着没事,写了两个通用的XML序列化与反序列化的方法. 贴出来当作笔记吧! /// <summary> /// XML序列化 /// </summary> /// <ty ...
- XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置
这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中 ...
- c# XML序列化与反序列化
c# XML序列化与反序列化 原先一直用BinaryFormatter来序列化挺好,可是最近发现在WinCE下是没有办法进行BinaryFormatter操作,很不爽,只能改成了BinaryWrite ...
- Xml序列化、反序列化帮助类
之前从网络上找了一个Xml处理帮助类,并整理了一下,这个帮助类针对Object类型进行序列化和反序列化,而不需要提前定义Xml的结构,把它放在这儿供以后使用 /// <summary> / ...
- Windows phone 之XML序列化与反序列化
为什么要做序列化和反序列化? 一个回答: 我们都知道对象是不能在网络中直接传输的,不过还有补救的办法.XML(Extensible Markup Language)可扩展标记语言,本身就被设计用来存储 ...
- C#操作Xml:XmlSerializer 对象的Xml序列化和反序列化
这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中的对 ...
- C#实现接口xml序列化与反序列化
C#实现接口xml序列化与反序列化 C#中接口无法被xml序列化,提示不支持.百度和bing也搜不到,只好自己动手写了 原理上肯定支持,.Net自己的xml序列化有一个IXmlSerializab ...
随机推荐
- 【Python实战】Pandas:让你像写SQL一样做数据分析(二)
1. 引言 前一篇介绍了Pandas实现简单的SQL操作,本篇中将主要介绍一些相对复杂一点的操作.为了方便后面实操,先给出一份简化版的设备统计数据: 0 android NLL 387546520 2 ...
- 几款主流PHP框架的优缺点评比
PHP是一种在国内外都比较流行的开源服务器端脚本开发语言.能够适应大中小型项目的开发需求.我们将在这篇文章中向大家介绍几款主流PHP框架及其相关优缺点评比,作为一个参考分享给朋友们. 主要参考的PHP ...
- WPF资源使用
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...
- touchstart,touchmove,touchend触摸事件的小小实践心得
近段时间使用html5开发一个公司内部应用,而触摸事件必然是移动应用中所必须的,刚开始以为移动设备上或许也会支持鼠标事件,原来是不支持的,好在webkit内核的移动浏览器支持touch事件,并且打包成 ...
- 编译可供C#调用的C/C++动态链接库dll文件
编译可供C#调用的C/C++动态链接库dll文件,C语言控制台应用程序,探索生成dll过程 由于项目需求,需要公司另一个团队提供相关算法支持,是用C语言编译好的dll库提供给我们进行调用. 但是拿到d ...
- Sql server函数的学习1(系统变量、错误函数、转换函数)
一.系统变量的介绍和使用 1.@@ERROR 变量 2.@@SERVICENAME 变量 3.@@TOTAL_ERRORS 变量 4.@@TOTAL_READ 变量 5.@@VERSION 变量 二. ...
- 使用pyinstaller打包Python应用,生成EXE执行文件
在命令行中切换到要打包的程序所在目录,或者在程序目录打开命令行,直接输入下面的指令即可pyinstaller -F xxx.py pyinstaller -F -w -i manage.ico app ...
- ahjesus在asp.net中还可以通过设置HttpCookie对象的过期时间为DateTime.MinValue来指定此Cookies为跟随浏览器生效
ahjesus在asp.net中还可以通过设置HttpCookie对象的过期时间为DateTime.MinValue来指定此Cookies为跟随浏览器生效
- Lind.DDD.Utils.HttpHelper关于对HttpClient的正确使用
回到目录 官方的不一定是对的,机器最能证明一切 不知道从什么时候起,我们在写数据库连接,网络连接,文件操作时会习惯加上using,这种习惯被我们误称为一种模式,但事实上,一切事情都有因有果的,使用us ...
- 变通实现微服务的per request以提高IO效率(二)
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...