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();
}

浙公网安备 33010602011771号