2010-04-14 33 views
1

有了这个代码,我可以有Silverlight的询问用户是否他要增加IsolatedStorage:无论如何减少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(); 
} 

但如果我尝试将其设置到的金额低于其目前是,我得到一个错误,这是不是可能。

  1. 是否有解决类似的问题,即我可以减少IsolatedStorage量?这对于测试目的至少是有用的。

  2. 相关问题:当用户同意增加IsolatedStorage时,其他应用程序是否可以使用此容量或仅仅是增加它的应用程序?我认为这是上述限制的原因。

回答

2

年以来的涨幅是在一个IsolatedStorage 文件进行,只有你的应用程序(或其他人在你的域名托管)可以使用新的配额:

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

而且,似乎一旦你增加,你不能回去(编程):

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

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

0

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

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