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 @ 2024-08-22 08:20  wzwyc  阅读(95)  评论(0)    收藏  举报