可以通过 GType 扩展 GKeyFile 以保存私有·来源·枚举字段吗?

问题描述

我正在为以下问题寻找好的解决方案:

  • 将一些键存储在 GKeyFile 结构中,我将它从 3 个不同的来源放在那里:1) 在数据中编译,2) 其他 ini 文件,3 ) 一个插件脚本,
  • 我想用它来自的来源标记每个键/值对。

我偶然发现了 GType 以及在运行时将私有数据成员添加到现有类型的示例。这些例子非常直接(link)。所以我想在 GKeyFile 的 GType 的某处添加这样的私有字段(origin 枚举),基本上是每个键/值存储对中值的(另一个 GType?)类型,但我没有知道应该怎么做。

G_TYPE_KEY_FILE 宏,它返回 GTypeGKeyFile。但是,从哪里开始?

解决方法

除非您控制类型的实现,否则您不能向类型添加私有结构。您无法控制 GKeyFile 的实现(它是 GLib 内部的),因此您无法执行此操作。

我认为您最好编写一个包装 GKeyFile 并在其上实现您自己的逻辑的类。新类将有一个指向内部 GKeyFile 实例的指针,但不会从 GKeyFile 派生,因为其他代码不需要知道您的数据存储实际上是作为密钥文件实现的。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...