读取和写入独立存储的通用等待方法
本文关键字:等待 方法 存储 独立 读取 | 更新日期: 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
。