.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 ...
随机推荐
- UIColor延伸:判断两个颜色是否相等
不管UIColor使用CIColor,CGColor还是其他方式初始化的,其CGColor属性都是可用的.CoreGraphics中提供一个函数,用于判断两个CGColor是否相等,因此我们可以通过这 ...
- opencv学习笔记二
1,读取照片(imread()) 2,处理照片(cvtcolor()) 3,命名窗口(namewindow()) 4,显示照片(imshow()) 5,保存照片(imwrite()) #include ...
- lightoj 1245
lightoj 1245 Harmonic Number (II) 题意:给定一个 n ,求 n/1 + n/2 + …… + n/n 的值(这里的 "/" 是计算机的整数除法,向 ...
- 从samsung提供内核进行移植
1.尝试编译分析结果 配置编译下载尝试 (1)检查Makefile中ARCH和CROSS_COMPILE(2)make xx_defconfig(3)make menuconfig(4)make -j ...
- sshSSH Secure Shell Client root用户无法登录解决办法
最近使用这个工具,普通用户可以登录root用户不可以登录.将vi /etc/ssh/sshd_config按照下述配置解决问题 修改sshd配置文件:vi /etc/ssh/sshd_config P ...
- [技巧篇]11.JavaScript原生态如何获取浏览器请求地址中的参数
var getAccessParams = function(){ var i,ilen,strs,keyName,keyValue, params={}, path = window.locatio ...
- HEOI 2012 旅行问题
2746: [HEOI2012]旅行问题 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 1009 Solved: 318[Submit][Statu ...
- [Luogu 2580] 于是他错误的点名开始了
[Luogu 2580] 于是他错误的点名开始了 不用好奇我为什么突然发水题题解- 突然觉得自己当年的幼儿园码风太幼稚,就试图把数据结构什么的用指针重写一遍- 想当年因为空间开太大而全 RE,调了一下 ...
- asp.net 文件上传,大文件上传。
新建一个asp.net页面,在工具栏里拖入 FileUpload 上传控件.一个按钮 Button ! ! ! 进入Button事件 //----------------------- ...
- [uva11806]容斥定理
n*m的矩形 k个人 第一行,最后一行,第一列,最后一列都至少站有一个人 小水题 正着做不好做,要反着想,那就容斥定理,ABCD四种情况分别是那四个行列分别没有人. #include<cstdi ...