方法 : 分離ストレージでストアを取得する

ストアは、データ コンパートメント内に仮想のファイル システムを公開します。IsolatedStorageFile には、ストアと対話するためのいくつかのメソッドが用意されています。ストアを作成および取得するには、IsolatedStorageFile に用意されている 3 つの静的メソッドを使用します。GetUserStoreForAssembly を呼び出すと、ユーザーおよびアセンブリ別に分離されたストレージが返されます。GetUserStoreForDomain を呼び出すと、ユーザー、ドメイン、およびアセンブリ別に分離されたストレージが返されます。この 2 つのメソッドは、呼び出し元のコード ブロックに属するストアを取得します。静的メソッド GetStore は、スコープ パラメータの組み合わせを渡すことによって指定される分離ストアを返します。次のパラメータは、ユーザー、アセンブリ、およびドメイン別に分離されたストアを返します。

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

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

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

上記の 3 つのメソッドは、いずれも IsolatedStorageFile オブジェクトを返します。場面に応じてどの分離タイプを使用するのが適切かを判断するには、「分離のタイプ」を参照してください。分離ストレージ ファイル オブジェクトを取得した後は、分離ストレージのメソッドを使用して、ファイルやファイル ディレクトリの読み取り、書き込み、作成、および削除を行うことができます。

ストアを取得するための十分なアクセス権限を持たないコードに IsolatedStorageFile を渡すことを阻止する方法はありません。ドメインおよびアセンブリの ID や分離ストレージのアクセス許可の確認は、IsolatedStorage オブジェクトへの参照を取得した場合、つまり、通常は GetUserStoreForAssemblyGetUserStoreForDomain、または GetStore メソッドで取得した場合だけに実行されます。したがって、IsolatedStorageFile オブジェクトへの参照の保護は、その参照を使用するコードで行う必要があります。

ObtainingAStore の例

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

コードの実行後に、コマンド ラインに「StoreAdm /LIST」と入力すると、ストアが作成されたことを確認できます。「StoreAdm/List」と入力すると、分離ストレージ管理ツール (Storeadm.exe) が実行され、そのユーザーについての現在の分離ストアがすべて一覧表示されます。Storeadm.exe の詳細については、「分離ストレージ ツール (Storeadm.exe)」を参照してください。

Imports System
Imports System.IO.IsolatedStorage

Public Module modmain

    Sub Main()

        ' Dimension a new IsolatedStorageFile.

        Dim isoStore As IsolatedStorageFile

        ' Set the IsolatedStorageFile to a store isolated by user and
        ' assembly.

        isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or IsolatedStorageScope.Assembly, Nothing, Nothing)

    End Sub
End Module
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);

    }
}

参照

関連項目

IsolatedStorageFile
IsolatedStorageScope

概念

分離のタイプ

その他の技術情報

分離ストレージ作業の実行
共通言語ランタイムのアセンブリ