.NET 二进制序列化器,SOAP序列化器,XML序列化器
这里就不说JSON序列化了,只介绍三种:二进制序列化器,SOAP序列化器,XML序列化器
直接上代码:
/// <summary>
/// 二进制序列化器、
/// 最节省流量,压缩程度最大的序列化器
/// </summary>
public static void BinarySerialize()
{
//文件路径
string fileName = "文件.txt";
//需要一个stream,这里是直接把数据写入文件了
using (Stream sm = new FileStream(fileName, FileMode.Create, FileAccess.Read))
{
//获取数据
List<Programmer> pList = DataFactory.BuildProgrammerList();
//创建二进制序列化器
BinaryFormatter binformat = new BinaryFormatter();
//写入文件
binformat.Serialize(sm, pList);
}
//反序列化成对象,从文件中获取数据
using(Stream sm = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite))
{
//创建二进制序列化器
BinaryFormatter binformat = new BinaryFormatter();
//重置流位置
sm.Position = ;
//反序列化
List<Programmer> pList = (List<Programmer>)binformat.Deserialize(sm);
}
}
/// <summary>
/// soap序列化器
/// </summary>
public static void SoapSerialize()
{
//文件路径
string filePath = "文件.txt";
//需要一个Stream,这里直接把数据写入文件了
using (Stream sm = new FileStream(filePath, FileMode.Create, FileAccess.Read))
{
//获取数据
List<Programmer> pList = DataFactory.BuildProgrammerList();
//创建soap序列化器
SoapFormatter soapFormt = new SoapFormatter();
//写入文件
soapFormt.Serialize(sm, pList);
}
//反序列化
using (Stream sm = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite))
{
//创建soap序列化器
SoapFormatter soapFormat = new SoapFormatter();
//序列化成对象
List<Programmer> pList = (List<Programmer>)soapFormat.Deserialize(sm);
}
}
/// <summary>
/// XML序列化器
/// </summary>
public static void XmlSerialize()
{
//文件路径
string filePath = "";
using(Stream sm = new FileStream(filePath, FileMode.Create, FileAccess.Read))
{
List<Programmer> pList = DataFactory.BuildProgrammerList();
//创建xml序列化器,需要指定对象的类型
XmlSerializer xmlFormat = new XmlSerializer(typeof(List<Programmer>));
//写入文件
xmlFormat.Serialize(sm, pList);
}
using (Stream sm = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite))
{
//创建xml序列化器
XmlSerializer xmlFormat = new XmlSerializer(typeof(List<Programmer>));
//反序列化成对象
List<Programmer> pList = (List<Programmer>)xmlFormat.Deserialize(sm);
}
}
.NET 二进制序列化器,SOAP序列化器,XML序列化器的更多相关文章
- XmlSerializer 对象的Xml序列化和反序列化
http://www.cnblogs.com/yukaizhao/archive/2011/07/22/xml-serialization.html 这篇随笔对应的.Net命名空间是System.Xm ...
- XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置
这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中 ...
- C#操作Xml:XmlSerializer 对象的Xml序列化和反序列化
这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中的对 ...
- Xml 序列化
1 XML序列化只能序列化对象的公有属性,并且要求对象有一个无参的构造方法,否者无法反序列化. 2 [Serializable]和[NonSerialized]特性对XML序列化无效!所以使用XML序 ...
- Xml序列化、反序列化帮助类
之前从网络上找了一个Xml处理帮助类,并整理了一下,这个帮助类针对Object类型进行序列化和反序列化,而不需要提前定义Xml的结构,把它放在这儿供以后使用 /// <summary> / ...
- IOSerialize,xml和json,soap序列化器,二进制序列化器,XML序列化器,文件 检查、新增、复制、移动、删除
1 文件夹/文件 检查.新增.复制.移动.删除,2 文件读写,记录文本日志/读取配置文件3 三种序列化器4 xml和json1.文件夹/文件 检查.新增.复制.移动.删除,2 文件读写,记录文本日志/ ...
- Android 使用xml序列化器生成xml文件
在<Android 生成xml文件>一文中使用流的形式写入xml格式文件,但是存在一定的问题,那就是在短信内容中不能出现<>之类的括号,本文使用xml序列化器来解决 xml序列 ...
- 使用XML序列化器生成XML文件和利用pull解析XML文件
首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message&g ...
- 使用XMl序列化器生成xml文件
生成XML文件 创建几个虚拟的短信对象,存在list中 备份数据通常都是备份至sd卡 使用StringBuffer拼接字符串 把整个xml文件所有节点append到sb对象里 sb.append(&q ...
随机推荐
- pg_basebackup: invalid tar block header size
问题: 在使用pg_basebackup搭建备节点时,由于pg_basebackup本身使用的是int整型来保存传输的数据大小,当传输的数据大于4G的话,整数就会溢出,进而报出:pg_baseback ...
- 单例 ------ JAVA实现
单例:只能实例化一个对象,使用场景比如打印机. 最推荐的是采用饿汉式:双重校验锁用到了大量的语法,不能保证这些语法在所用场合一定没问题,所以不是很推荐:总之简单的才是最好的,就饿汉式!!! C++ 创 ...
- 在IIS中寄存服务
http://blog.csdn.net/songyefei/article/details/7381595 第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型 ...
- JAVA--未明确定义列
原因:列明重复 可以加前缀或区别名以区分
- Cppcheck代码分析上
1.检查点 1.自动变量检查: 返回自动变量(局部变量)指针: 2.越界检查:数组越界返回自动变量(局部变量)指针: 3.类检查:构造函数初始化: 4.内存泄露检查: 5.空指针检查: 6.废弃函数 ...
- ionic@2.0 beta版本安装指南
由于访问npm官方源下载ionic速度缓慢,淘宝提供了npm源,方便国内人士访问. 1.通过config命令 npm config set registry https://registry.npm. ...
- 通过.NET客户端异步调用Web API(C#)
在学习Web API的基础课程 Calling a Web API From a .NET Client (C#) 中,作者介绍了如何客户端调用WEB API,并给了示例代码. 但是,那些代码并不是非 ...
- 【20151105noip膜你赛】bzoj3652 bzoj3653
题目仿佛在讽刺我... 第一题: 题解: 考虑枚举区间右端点,维护所以左到当前的 and 和 or .注意 and 每次变化至少有一个二进制位从1变 0,or 每次至少有一个位从0变 1,所以最多有l ...
- IT培训班123
最近20年,IT行业一直处于上升期,程序员的工资越来越高了,年薪几十万的程序员大有人在.根据国家统计局发布的2016年各行业平均工资报表,程序员已经是工资最高的一个群体,超过了金融行业. IT行业的火 ...
- js中三种定义变量 const, var, let 的区别
js中三种定义变量的方式const, var, let的区别 1.const定义的变量不可以修改,而且必须初始化. 1 const b = 2;//正确 2 // const b;//错误,必须初始化 ...