Akavache的试用笔记

简介

Akavache是一个异步的、持久的(即写入磁盘)键值存储,用于在C#中编写桌面和移动应用程序。它基于SQLite3,非常适合存储重要数据(即用户设置)以及过期的缓存本地数据。

安装

Install-Package Akavache

初始化

应用启动时先执行下面的语句

Akavache.Registrations.Start("AkavacheExperiment");

写入数据

var myData = new { Name = "John Doe", Age = 30 };
await BlobCache.UserAccount.InsertObject("myDataKey", myData);

读取数据

var retrievedData = await BlobCache.UserAccount.GetObject<dynamic>("myDataKey");

用订阅的方式读取数据:

BlobCache.UserAccount.GetObject<dynamic>("myDataKey")
    .Subscribe(x => Console.WriteLine($"Retrieved Data: Name={x.Name}, Age={x.Age}"));

尝试读取数据,如果没有的话就创建:

var info = await BlobCache.UserAccount.GetOrCreateObject<UserInfo>("user1", () => new UserInfo() { Name = "bbb", Age = 10 });

配置信息的保存位置

  • BlobCache.LocalMachine - Cached data. This data may get deleted without notification.
  • BlobCache.UserAccount - User settings. Some systems backup this data to the cloud.
  • BlobCache.Secure - For saving sensitive data - like credentials.
  • BlobCache.InMemory - A database, kept in memory. The data is stored for the lifetime of the app.

关闭时调用

BlobCache.Shutdown().Wait();

示例代码

Akavache.Registrations.Start(AppBase.GetAssemblyName());

private void LoadConfig()
{
    BlobCache.UserAccount.GetOrCreateObject(GetKeyName(nameof(ReadMode)), () => false).Subscribe(s => ReadMode = s);
}

public void OnClosed()
{
    BlobCache.UserAccount.InsertObject(GetKeyName(nameof(ReadMode)), ReadMode).GetAwaiter();
}
posted @   wzwyc  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
历史上的今天:
2018-08-22 C#调用Python代码
2017-08-22 NAudio的使用说明
2017-08-22 IT回忆录-2
点击右上角即可分享
微信分享提示