Genexus Extensions SDK是否有内置助手可实现本地数据持久化存储?
Genexus Extension SDK 本地持久化能力说明
Genexus Extension SDK 原生支持你提到的独立于KB、关联单KB两类本地持久化场景,无需引入第三方组件实现类似PersistentDictionary的键值持久化能力,两个具体疑问的解答如下:
1. 单KB场景扩展存储接口
Genexus 已经封装了KB层面的自定义数据读写接口,不需要开发者直接操作底层SQL Server数据库。你可以使用IKBProperties接口实现单KB关联数据的持久化,所有写入的键值对数据会和KB的其他元数据一同存储在KB对应的SQL Server库中,数据生命周期与当前KB绑定。
常用读写示例:
- 写入配置:
KB.Properties.SetString("你的扩展唯一前缀.配置项名", 配置值); - 读取配置:
var 配置值 = KB.Properties.GetString("你的扩展唯一前缀.配置项名", 默认值);
建议配置项名加上你的扩展独有的前缀,避免和其他扩展的存储键冲突。
2. 独立于KB的全局实例存储接口
你需要的跟随Genexus本地实例、启动自动加载的扩展配置,可以通过IUserPreferences接口实现。该接口存储的数据保存在当前Windows用户的Genexus本地配置目录下,不关联任何KB,同一用户启动的所有Genexus实例都可以通用读取,完全满足全局配置持久化需求。
常用读写示例:
- 写入全局配置:
UserPreferences.Set("你的扩展唯一前缀.全局配置项名", 自定义配置对象); - 读取全局配置:
var 全局配置 = UserPreferences.Get<自定义配置类>("你的扩展唯一前缀.全局配置项名", 默认配置对象);
接口原生支持自定义对象的序列化存储,不需要额外做序列化、反序列化处理。
内容的提问来源于stack exchange,提问作者Bruno.S
相关产品推荐
相关产品推荐

