读取和写入独立存储的通用等待方法

本文关键字:等待 方法 存储 独立 读取 | 更新日期: 2023-09-27 18:33:22

我正在尝试创建两种使用 PCLStorage 写入和读取独立存储的方法,但我在读取 (Get) 部分遇到了一些问题:

        public async static Task<T> GetObject()
        {
            IFolder rootFolder = FileSystem.Current.LocalStorage;
            IFolder folder = await rootFolder.CreateFolderAsync("cache", CreationCollisionOption.OpenIfExists);
            IFile file = await folder.GetFileAsync(T.GetType().Name);
            return await file.ReadAllTextAsync();
        }
        public async static void SetObject<T>(T obj)
        {
            IFolder rootFolder = FileSystem.Current.LocalStorage;
            IFolder folder = await rootFolder.CreateFolderAsync("cache", CreationCollisionOption.OpenIfExists);
            await folder.CreateFileAsync(obj.GetType().Name, CreationCollisionOption.ReplaceExisting);
        }

我在这里要做的是为我的对象创建两个泛型函数,即我想存储在独立存储中的函数。我的问题是我坚持如何在 GetObject 返回Task<TYPE>时"通用"它,例如Task<string>。通常T是用方法名定义的,但这里需要用任务来定义。

读取和写入独立存储的通用等待方法

它仍然工作相同,您必须在方法名称后定义 T:

public async static Task<T> GetObject<T>()

如果你有这个,你可以这样称呼它:

SomeType obj = await GetObject<SomeType>();

虽然这不能直接用于您当前的代码,但您必须以某种方式将ReadAllTextAsyc返回的内容(大概是 string )转换为T