Windows phone 8 Windows Phone隔离存储设置:容量和动态分配

Windows phone 8 Windows Phone隔离存储设置:容量和动态分配,windows-phone-8,isolatedstorage,dynamic-memory-allocation,isolatedstoragefile,Windows Phone 8,Isolatedstorage,Dynamic Memory Allocation,Isolatedstoragefile,我将使用方便的IsolatedStorageSettings字典在我的WP8应用程序中保存足够大的数据量。然而,出现的第一个问题是它有多大 第二,从中我们可以发现: 如果需要更多空间,请使用IsolatedStorageFile.IncreaseQuotaTo 方法从主机请求更多存储空间 我们能否估计所需的内存量并相应地增加隔离存储设置的空间?当用户输入数据的新部分以进行持久存储时,如果我们需要动态地执行该操作,该怎么办?或者,也许我们需要使用另一种技术来实现这一点(尽管我想继续使用便捷的Iso

我将使用方便的IsolatedStorageSettings字典在我的WP8应用程序中保存足够大的数据量。然而,出现的第一个问题是它有多大

第二,从中我们可以发现:

如果需要更多空间,请使用IsolatedStorageFile.IncreaseQuotaTo 方法从主机请求更多存储空间


我们能否估计所需的内存量并相应地增加隔离存储设置的空间?当用户输入数据的新部分以进行持久存储时,如果我们需要动态地执行该操作,该怎么办?或者,也许我们需要使用另一种技术来实现这一点(尽管我想继续使用便捷的IsolatedStorageSettings类)

我在本文中找到了问题第一部分的答案:。以下是在具有一些增强功能的特定设备上获取所需值的代码:

long availablespace, Quota;
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
   availablespace = store.AvailableFreeSpace ;
   Quota = store.Quota ;
}

MessageBox.Show("Available : " + availablespace.ToString("##,#") + "\nQuota : " + Quota.ToString("##,#));
512Mb WP8 emulator为一个最小的应用程序提供了以下值,该应用程序在IsolatedStorageSettings中保存了几个字符串:

Lumia 920报告了更大的价值——大约20Gb,这让我很高兴。如此大的值(我认为这取决于设备中的整个可用内存)将允许我使用IsolatedStorageSettings对象来处理大量数据


至于一种可以用来估计数据量的方法,我想,这只能通过实验来实现。例如,当我向IsolatedStorageSettings添加一些字符串时,可用空间减少了4Kb。但是,再次添加相同部分的数据不会显示任何新的内存分配。正如我所看到的,它是由4Kb的块分配的。

如果它能有所帮助,我已经设法对IsolatedStorageSettings.Save方法进行了反编译,并在中公开了它的源代码