我正在寻找一个C ++对象持久库来替换 永恒库 我已经开始原型了大约一天。永恒图书馆很短。

我创建了一个类似于此的对象层次结构:

object heirarchy

我有一个 std::listArchiveJob*我想坚持并以XML格式恢复。每个 ArchiveJob 有各种子对象,有些分配在堆栈上,有些在堆上。

永恒在正确地坚持这些对象方面做得很好,但是在恢复它们时,它失败了。

(对于那些熟悉永恒的人,以下“还原”操作未能从XML文件中读取任何数据)

xml_read( sequence<pointers>(), *pList, pList->begin(), xml, "ScheduleList" );

此调用分配的内存 ArchiveJob 目的,但其所有孩子都没有初始化。

有人可以推荐一个对象层次结构持续解决方案:

  1. 可以持久 /还原STL容器
  2. Windows开发人员友好(例如,如果需要构建,是否有VS200X解决方案文件)
  3. 可以处理复杂的对象层次结构

我应该花时间学习吗 XML序列化和增强?它如何处理存储在STL容器中的主对象中的复杂对象层次结构?

有帮助吗?

解决方案

增强序列化 是您需要的:

  1. 序列化容器
  2. 尽管没有VS2008解决方案文件
  3. 序列化派生类

编辑]实际上我错了,其中包括 VS7.1解决方案文件

其他提示

另一个选择是 Google协议缓冲区. 不是基于XML 如果您严格绑定到XML。由于您需要在外部文件中使用特殊语法,因此它也更为复杂。关于层次结构,您可以阅读 讨论

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top