В настоящее время я занимаюсь разработкой приложений для форм xamarin. Я сталкиваюсь с проблемами при инициализации avakache в качестве базы данных. Я использовал приведенный ниже код для инициализации,
BlobCache.ApplicationName = "testApp"
Это создает InMemoryCache, а все остальные кэши имеют значение null. Чтобы начать работу с кэшем LocalMachine, я использовал следующий код:
private IFilesystemProvider _filesystemProvider;
public void Init()
{
_filesystemProvider = Locator.Current.GetService<IFilesystemProvider>();
GetLocalMachineCache();
}
private void GetLocalMachineCache()
{
var localCache = new Lazy<IBlobCache>(() =>{
_filesystemProvider.CreateRecursive(_filesystemProvider.GetDefaultLocalMachineCacheDirectory()).SubscribeOn(BlobCache.TaskpoolScheduler).Wait();
return new SQLitePersistentBlobCache(Path.Combine(_filesystemProvider.GetDefaultLocalMachineCacheDirectory(), "blobs.db"), BlobCache.TaskpoolScheduler);
});
this.LocalMachineCache = localCache.Value;
}
Я получаю _filesystemProvider как ноль для устройства Apple (iphone 11 pro ios 13). Я добавил класс LinkerPreserve в приложение, проект droid и проект ios. Я использую akavache 6.8.