• 面向对象基础知识五、对象序列化


    五、对象序列化

    对象序列化主要解决对象状态(指某一时刻对象所拥有的各个字段/属性值的集合)的保存问题。

    5.1 序列化(Serialization)

    将对象状态保存到其它媒介(常用媒介有流Stream和字符串String)中的过程称为对象的序列化(Serialization)。
    image
    (Stream)代表的是一连串有顺序的二进制数据,如下图所示:
    image

    • 二进制序列化
      将对象的数据格式化成二进制的数据写入到流中。
      image

    格式化器(Faomatter):BinaryFormatter完成二进制序列化工作。
    支持二进制序列化的类要求拥有[Serialization]标记。

    • XML序列化
      将对象数据用XML方式表示之后再以字符串的方式写入到流中。
      image

    格式化器(Faomatter):SoapFormatter完成XML序列化工作。

    • 分布式系统的对象序列化
      分布于不同计算机上的应用程序相互通讯,可将对象序列化(也可以将对象序列化为XML或JSON字符串实现跨平台跨网络的远程对象传送)到网络流(NetworkStream)中,从而将一个对象通过网络从一台机器传送到另一台机器。
      image

    5.2 反序列化(Deserialization)

    从媒介中重新读取数据来重建对象的过程称为反序列化(Deserialization)。
    image

    • 二进制反序列化
      image

    5.3 .Net中的流对象

    image

    5.4 应用实例

    1. 批量的复制对象
      先将对象序列化到内存流,然后将流的读写指针移回到开头位置,再反序列化即可创建一个与原有对象一模一样的对象。重复这个过程可以克隆多个对象。
      image
    2. 程序退出时保存状态
  • 相关阅读:
    1703技术笔录
    技术开发感想
    1701技术随笔
    12月份技术随笔
    光照效果函数
    冰冻效果
    反色效果函数
    哈哈镜效果
    黑白效果函数
    羽化效果
  • 原文地址:https://www.cnblogs.com/tjubuntu/p/15421239.html
Copyright © 2020-2023  润新知