我正在尝试使用LocalObjectStorageHelper保存和加载一个大型词典列表,该列表TValue是其中包含StorageFolders的对象的列表。我已经成功保存了该列表,因为可以物理地打开它保存的文件,但是当尝试加载该文件时,它会引发以下错误:Unable to find a constructor to use for type Windows.Storage.StorageFolder. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute.
我还没有尝试过很多关于此问题的相当深入的网络搜索,几年前的帖子说不可能做到这一点。
这是我要保存的对象。
class Pack
{
public StorageFolder Folder { get; set; }
public BitmapImage Image { get; set; }
public String Name { get; set; }
public Pack()
{
}
}
这就是我要保存到文件的内容。
var helper = new LocalObjectStorageHelper();
Dictionary<string, List<Pack>> allpacks = new Dictionary<string, List<Pack>>();
await helper.SaveFileAsync(PackCacheKey, allpacks);
最后,这就是我试图加载保存的文件的方式。
var helper = new LocalObjectStorageHelper();
if (await helper.FileExistsAsync(PackCacheKey))
{
var cachedPacks = await helper.ReadFileAsync<Dictionary<string, List<Pack>>>(PackCacheKey);
}