`

serialize的作用-20130921

 
阅读更多
serialize中文解释:从档案文件中读取该对象或向档案文件中写入该对象。

1、使用
串行化的每个类覆盖Serialize。被覆盖的Serialize首先必须调用基类的Serialize函数。
在类的声明中必须使用DECLARE_SERIAL宏,并且在类的执行过程中也必须使用IMPLEMENT_SERIAL宏。

DECLARE_DYNCREATE是动态创建的意思.这个有点类似Com的类工厂.


使用CArchive::IsLoading或CArchive::IsStoring函数,用于决定是否装载或存储了档案文件。
通过CArchive::ReadObject和CArchive::WriteObject来调用Serialize函数。这些函数与CArchive插入操作符()相关联。

CArchive 对象提供了一个类型安全缓冲机制,用于将可序列化对象写入 CFile 对象或从中读取可序列化对象。通常,CFile 对象表示磁盘文件;但是,它也可以是表示“剪贴板”的内存文件(CSharedFile 对象)。

2、条件

1. 该类需要从CObject类派生(可以是间接派生);
2. 在类中中进行DECLARE_SERIAL宏定义;
3. 类存在有缺省的构造函数;
4. 类中实现了Serialize()函数,并且在其中调用基类的序列化函数;
5. 使用IMPLEMENT_SERIAL宏指明类名及版本号;

3、作用

序列化简化了对象的保存和载入,为对象提供了持久性。但是,序列化本身仍具有一定的局限性。由于序列化一次从文件中载入所有对象,因此,它不适合于大文件编辑器和数据库。对于数据库和大文件编辑器,它们每次只是从文件中读入一部分。此时,就不应该采用文档的序列化机制来直接读取和保存文件了。另外,使用外部文件格式。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics