1.序列化 反序列化

C#中如果需要:将一个结构很复杂的类的对象存储起来,或者通过网路传输到远程的客户端程序中去,这时就需要用到序列化,反序列化(Serialization & Deserialization)

2.BinaryFormattter

.NET中串行有三种,BinaryFormatter, SoapFormatter和XmlSerializer.

其中BinaryFormattter最简单,它是直接用二进制方式把对象 (Object)进行串行或反串,他的优点是速度快,可以串行private或者protected的member, 在不同版本的。NET中都兼容,可以看作是。NET自己的本命方法,当然缺点也就随之而来了,离开了。NET它就活不了,所以不能在其他平台或跨网路上进 行。

3.序列化

BinaryFormatter ser = new BinaryFormatter();

MemoryStream ms = new MemoryStream();

ser.Serialize(ms, DS);

byte[] buffer = ms.ToArray();

MemoryStream :创建其支持存储区为内存的流

4.反序列化

//反序列化:将byte[]型的数据,放到Stream中,BinaryFormatter将流中的数据反序列化成对象

MemoryStream ms = new MemoryStream(bytes);

BinaryFormatter ser = new BinaryFormatter();

DataSetSurrogate dss = ser.Deserialize(ms) asDataSetSurrogate;

5.小结

进行序列化,反序列化,利用到的都是BinaryFormate,都得借普通流MemoryStream,不同的是:

序列化时,将对象序列化后放到MemoryStream,而反序列化时,将MemoryStream中的byte[]数据,反序列成对象

最新文章

  1. html中给表格添加斜线
  2. My English Dictionary
  3. Representation Data in OpenCascade BRep
  4. Golang pprof heap profile is empty
  5. C语言初学者代码中的常见错误与瑕疵(7)
  6. asp.net mvc3.0第一个程序helloworld开发图解
  7. hdu 4255 A Famous Grid
  8. 学习C++ Primer 的个人理解(十二)
  9. Jquery Call WebDav
  10. HashMap循环遍历方式及其性能对比
  11. iOS开发中EXC_BAD_ACCESS的另类原因
  12. Eclipse中安装TestNG插件
  13. 通过SDK和API获取阿里云RDS的监控数据
  14. java做成windows服务,电子秤例子,开机自动启动
  15. [Linux]返回被阻塞的信号集
  16. gitlab 注册runner
  17. 记账本微信小程序开发五
  18. The Golden Age CodeForces - 813B (数学+枚举)
  19. Java判断对象是否为NULL
  20. System.Windows.Forms.Timer、System.Timers.Timer、System.Threading.Timer的 区别和用法

热门文章

  1. Good Bye 2014 E - New Year Domino 单调栈+倍增
  2. HashMap碰撞问题
  3. Disruptor Java版和.NET版的区别
  4. web学习测试环境
  5. STL容器 -- Map
  6. Django+Nginx+uwsgi搭建自己的博客(五)
  7. Django框架之【自定义模板过滤器与标签】
  8. zookpeer应用和zkclient实践
  9. Linux修复文件系统
  10. 安卓 Activity Fragment 生命周期