次の方法で共有


分離ストレージ用ストアの取得方法

分離ストアは、データ コンパートメント内の仮想ファイル システムを公開します。 IsolatedStorageFile クラスには、分離ストアと対話するためのメソッドが多数用意されています。 ストアを作成および取得するために、 IsolatedStorageFile には 3 つの静的メソッドが用意されています。

  • GetUserStoreForAssembly は、ユーザーとアセンブリによって分離されたストレージを返します。

  • GetUserStoreForDomain は、ドメインとアセンブリによって分離されたストレージを返します。

    どちらのメソッドも、呼び出し元のコードに属するストアを取得します。

  • 静的メソッド GetStore は、スコープ パラメーターの組み合わせを渡すことによって指定された分離ストアを返します。

次のコードは、ユーザー、アセンブリ、およびドメインによって分離されたストアを返します。

IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
    IsolatedStorageScope.Assembly | IsolatedStorageScope.Domain, null, null);
Dim isoStore As IsolatedStorageFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or
    IsolatedStorageScope.Assembly Or IsolatedStorageScope.Domain, Nothing, Nothing)

GetStore メソッドを使用して、ストアがローミング ユーザー プロファイルを使用してローミングするように指定できます。 これを設定する方法の詳細については、「 分離の種類」を参照してください。

異なるアセンブリ内から取得された分離ストアは、既定では異なるストアです。 GetStore メソッドのパラメーターでアセンブリまたはドメインの証拠を渡すことで、別のアセンブリまたはドメインのストアにアクセスできます。 これには、アプリケーション ドメイン ID によって分離ストレージにアクセスするためのアクセス許可が必要です。 詳細については、 GetStore メソッドのオーバーロードを参照してください。

GetUserStoreForAssemblyGetUserStoreForDomain、およびGetStoreのメソッドは、IsolatedStorageFile オブジェクトを返します。 状況に最も適した分離の種類を決定するには、「 分離の種類」を参照してください。 分離ストレージ ファイル オブジェクトがある場合は、分離ストレージ メソッドを使用して、ファイルとディレクトリの読み取り、書き込み、作成、および削除を行うことができます。

コードがストア自体を取得するための十分なアクセス権を持たないコードに IsolatedStorageFile オブジェクトを渡すことを妨げるメカニズムはありません。 ドメインとアセンブリの ID と分離ストレージのアクセス許可は、通常、IsolatedStorageGetUserStoreForAssembly、またはGetUserStoreForDomainメソッドで、GetStore オブジェクトへの参照が取得された場合にのみチェックされます。 したがって、 IsolatedStorageFile オブジェクトへの参照の保護は、これらの参照を使用するコードの責任です。

次のコードは、ユーザーとアセンブリによって分離されたストアを取得するクラスの簡単な例を示しています。 コードを変更して、IsolatedStorageScope.Domain メソッドが渡す引数にGetStoreを追加することで、ユーザー、ドメイン、およびアセンブリによって分離されたストアを取得できます。

コードを実行した後、コマンド ラインで 「StoreAdm /LIST 」と入力して、ストアが作成されたことを確認できます。 これにより 、Isolated Storage ツール (Storeadm.exe) が実行され、ユーザーの現在の分離ストアがすべて一覧表示されます。

using System;
using System.IO.IsolatedStorage;

public class ObtainingAStore
{
    public static void Main()
    {
        // Get a new isolated store for this assembly and put it into an
        // isolated store object.

        IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
            IsolatedStorageScope.Assembly, null, null);
    }
}
Imports System.IO.IsolatedStorage

Public Class ObtainingAStore
    Public Shared Sub Main()
        ' Get a new isolated store for this assembly and put it into an
        ' isolated store object.

        Dim isoStore As IsolatedStorageFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or
            IsolatedStorageScope.Assembly, Nothing, Nothing)
    End Sub
End Class

こちらも参照ください