.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 ...
随机推荐
- HDU4625:Strongly connected(思维+强连通分量)
Strongly connected Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- [mysql][【优化集合】mysql数据库优化集合
三个层面: 1.系统层面 2.mysql配置参数 3.sql语句优化 =========================================================== 一.系统层 ...
- j2ee 项目部署指引
j2ee相关的项目一般是web工程或java application,部署到linux服务器上,本文结合自己的经验.教训,总结下部署的过程. 一.准备阶段 部署前要做的事情: 1.明确自己的产品都包含 ...
- 【Android】Android之Copy and Paste
Android为复制粘贴提供了一个强大的基于剪切板的框架,它支持简单和复杂的数据类型,包括纯文本,复杂的数据结构,二进制流,甚至app资源文件.简单的文本数据直接存储在剪切板中,而复杂的数据则存储的是 ...
- UnknownHostException
1.查看Centos版本号,不同版本修改的方式可能不一样 cat /etc/issue 查看版本 2.通过hostname命令查看当前主机名 hostname 3.编辑network文件修改hostn ...
- Freemarker <#list List/Map/Array[] as Object>
http://blog.csdn.net/ani521smile/article/details/52164366 详细教程链接
- 【51NOD-0】1106 质数检测
[算法]数学 #include<cstdio> #include<cmath> bool ok(int x) { int m=(int)sqrt(x+0.5); ;i<= ...
- 所有和Java中代理有关的知识点都在这了。
对于每一个Java开发来说,代理这个词或多或少都会听说过.你可能听到过的有代理模式.动态代理.反向代理等.那么,到底什么是代理,这么多代理又有什么区别呢.本文就来简要分析一下. 代理技术,其实不只是J ...
- elementui raido 单选框 循环渲染加:key
<el-radio-group v-model="adminRole"> <el-radio v-for="item in adminRoles&quo ...
- javascript中数据属性与访问器属性
1.数据属性 Configurable:true|false,表示能否通过delete将属性删除,默认为true.当把属性的Configurable设置为false后,该属性不能通过delete删除, ...