1

このコードを使用すると、IsolatedStorage を増やしたいかどうかを 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

増加は IsolatedStorage Fileで実行されるため、アプリケーション (またはドメインでホストされている他のアプリケーション) のみが新しいクォータを使用できます。

分離されたストアのスコープは特定のアセンブリに限定されるため、他のほとんどのマネージ コードはコードのデータにアクセスできません (信頼性の高いマネージ コードと管理ツールは、他のアセンブリのストアにアクセスできます)。アンマネージ コードは、分離されたストアにアクセスできます。

また、一度増加すると、元に戻すことはできないようです (プログラムによって):

アプリケーションは、同じドメイン (Web サイト) でホストされている他のすべてのアプリケーションとクォータを共有します。最初のクォータは、ドメインのすべてのアプリケーションで共有される 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

割り当てられた IsolatedStorage を減らす唯一の方法は、Silverlight 構成ダイアログを使用してサイトの IsolatedStorage を削除することです。プログラムでこれを行うことはできません。ユーザーは構成ダイアログを開いて、意図的にサイト ストレージを削除することを選択する必要があります。

クォータはサイトに割り当てられるため、あるアプリケーションがクォータの増加を要求すると、サイト内の他のアプリケーションがそのクォータからスペースを割り当てる可能性があります。

于 2010-04-14T19:02:03.137 に答える