1

使用此代码,我可以让 Silverlight 询问用户是否要增加独立存储:

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();
}

但是,如果我尝试将其设置为小于当前的数量,我会收到一个错误,表明这是不可能的。

  1. 是否有解决方法,即我可以减少IsolatedStorage 的数量吗?这至少对测试目的很有用。

  2. 相关问题:当​​用户同意增加IsolatedStorage时,其他应用程序可以使用这个容量还是只使用他增加它的应用程序?我认为这就是存在上述限制的原因。

4

2 回答 2

2

由于增加是在独立存储文件上执行的,因此只有您的应用程序(或托管在您的域中的其他应用程序)可以使用新配额:

由于独立存储的范围仅限于特定程序集,因此大多数其他托管代码将无法访问您代码的数据(高度受信任的托管代码和管理工具可以访问来自其他程序集的存储)。非托管代码可以访问任何独立的存储。

此外,似乎一旦增加,就无法返回(以编程方式):

应用程序与托管在同一域(网站)上的所有其他应用程序共享其配额。初始配额为 1 MB,由域的所有应用程序共享。新配额大小不得小于当前配额。只允许增加配额。

http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.isolatedstoragefile.increasequotato%28v=VS.95%29.aspx

于 2010-04-14T18:05:27.993 回答
0

分配后减少独立存储的唯一方法是使用 Silverlight 配置对话框删除站点独立存储。您不能以编程方式执行此操作,用户必须打开配置对话框并故意选择删除站点存储。

配额分配给站点,因此当一个应用程序请求增加配额时,站点中的其他应用程序可以从该配额分配空间。

于 2010-04-14T19:02:03.137 回答