使用此代码,我可以让Silverlight询问用户是否要增加IsolatedStorage:
private void Button_IncreaseIsolatedStorage_Click(object sender, RoutedEventArgs e)
{
IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
long newStorageCapacityInBytes = FileHelpers.GetMaxiumumSpace() + SystemHelpers.GetAmountOfStorageToIncreaseWhenNeededInBytes();
store.IncreaseQuotaTo(newStorageCapacityInBytes);
Message = "IsolatedStorage increased. " + FileHelpers.GetSpaceLeftMessage();
}
但是如果我尝试将其设置为小于当前的数量,我会收到一个错误,这是不可能的。
是否有针对此的解决方法,即我可以减少IsolatedStorage的数量吗?这至少可用于测试目的。
相关问题:当用户同意增加IsolatedStorage时,其他应用程序是否可以使用此容量或仅使用增加它的应用程序?我认为这就是上述限制的原因那里。
答案 0 :(得分:2)
由于在IsolatedStorage 文件上执行了增量,因此只有您的应用程序(或您域中托管的其他应用程序)才能使用新配额:
由于隔离存储的范围限定为特定程序集,因此大多数其他托管代码将无法访问代码的数据(高度可信的托管代码和管理工具可以访问其他程序集中的存储)。非托管代码可以访问任何隔离的商店。
此外,似乎一旦增加,就无法返回(以编程方式):
应用程序与同一域(网站)上托管的所有其他应用程序共享其配额。所有域的应用程序共享初始配额为1 MB。 新配额大小不得小于当前配额。 仅允许增加配额。
答案 1 :(得分:0)
分配后减少IsolatedStorage的唯一方法是使用Silverlight配置对话框删除网站IsolatedStorage。您不能以编程方式执行此操作,用户必须打开配置对话框并故意选择删除站点存储。
配额已分配给网站,因此当一个应用程序请求增加配额时,该配额中的其他应用程序可能会从该配额中分配空间。