为什么不是每种类型的对象都可序列化?

Mat*_*att 10 language-agnostic serialization

为什么不是每种类型的对象都可以隐式序列化?

在我有限的理解中,对象不是简单地存储在堆上而是指向堆栈上的指针吗?

您是否应该以编程方式遍历它们,以通用格式存储它们并且还能够从那里重建它们?

Bil*_*win 18

某些对象封装了文件指针或网络套接字等资源,这些资源无法序列化为序列化包含它们的对象时的状态.

示例:您不应反序列化充当经过身份验证的数据库连接的对象,因为要执行此操作,您需要序列化表单以包含明文密码.这不是一个好习惯,因为有人可能会保存已保存的序列化表单.您还不知道何时反序列化数据库服务器仍在运行,可以访问,身份验证凭据仍然有效等.


dmc*_*kee 5

即使您只考虑不包含操作系统状态的对象,问题也比初看起来更难.图表可能有周期.可以从多个顶级实体引用实体.

我试图在之前的答案中概述c中的通用序列化库,并发现存在一些困难的案例.