Gewusst wie: Abrufen eines Speichers für die isolierte Speicherung

Aktualisiert: November 2007

Ein Speicher macht ein virtuelles Dateisystem in einem Datendepot verfügbar. IsolatedStorageFile bietet mehrere Methoden für die Interaktion mit einem Speicher. IsolatedStorageFile stellt drei statische Methoden für das Erstellen und Abrufen von Speichern bereit. Durch Aufrufen von GetUserStoreForAssembly oder GetUserStoreForDomain wird Speicherplatz zurückgegeben, der nach Benutzer und Assembly bzw. nach Benutzer, Domäne und Assembly isoliert ist. Durch diese beiden Methoden wird ein Speicher abgerufen, der dem Codeblock angehört, aus dem sie aufgerufen werden. Die statische GetStore-Methode gibt einen isolierten Speicher zurück, der durch die Übergabe einer Kombination von Bereichsparametern gekennzeichnet ist. Die folgenden Parameter geben einen nach Benutzer, Assembly und Domäne isolierten Speicher zurück.

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

Mit der GetStore-Methode kann ein Speicher für das Roaming mit einem Roamingbenutzerprofil aktiviert werden. Weitere Details zur Einrichtung dieser Funktion finden Sie unter Isolierte Speicherung und Roaming.

Bei isolierten Speichern, die in verschiedenen Assemblys erstellt werden, handelt es sich standardmäßig um unterschiedliche Speicher. Auf den Speicher einer anderen Assembly oder Domäne kann zugegriffen werden, indem Beweise anderer Assemblys oder Domänen als die beiden letzten Parameter der GetStore-Methode übergeben werden. Dazu ist die Zugriffsberechtigung für isolierte Speicherung anhand der Identität der Anwendungsdomäne notwendig. Weitere Informationen finden Sie unter der GetStore-Methode. Weitere Informationen über Assemblys finden Sie unter Assemblys.

Durch jede dieser drei Methoden wird ein IsolatedStorageFile-Objekt zurückgegeben. Unter Isolationstypen finden Sie weitere hilfreiche Informationen für die Entscheidung, welcher Isolationstyp sich für Ihre Situation am besten eignet. Sobald Sie über ein Dateiobjekt mit isolierter Speicherung verfügen, können Sie Methoden der isolierten Speicherung zum Lesen, Schreiben, Erstellen und Löschen von Dateien und Verzeichnissen verwenden.

Kein Mechanismus kann verhindern, dass durch Code ein IsolatedStorageFile an Code übergeben wird, der nicht über ausreichende Zugriffsrechte verfügt, um selbst auf den Speicher zuzugreifen. Domänen- und Assemblyidentitäten sowie Zugriffsberechtigungen für isolierten Speicher werden nur beim Erhalt eines Verweises auf ein IsolatedStorage-Objekt überprüft. In der Regel handelt es sich dabei um die GetUserStoreForAssembly-Methode, die GetUserStoreForDomain-Methode oder die GetStore-Methode. Für den Schutz von Verweisen auf IsolatedStorageFile-Objekte ist daher der Code zuständig, der diese Verweise verwendet.

Beispiel "ObtainingAStore"

Im Folgenden wird ein sehr einfaches Codebeispiel dafür gegeben, wie eine Klasse einen nach Benutzer und Assembly isolierten Speicher erhält. Der Code kann verändert werden, um einen nach Benutzer, Domäne und Assembly isolierten Speicher abzurufen, indem IsolatedStorageScope.Domain zu den durch die GetStore-Methode übergebenen Argumenten hinzugefügt wird.

Nach Ausführung des Codes können Sie bestätigen, dass ein Speicher erstellt wurde. Geben Sie dazu in die Befehlszeile StoreAdm /LIST ein. Dadurch wird das Administrationstool für isolierte Speicherung (Storeadm.exe) ausgeführt, und alle aktuellen isolierten Speicher des Benutzers werden aufgelistet. Weitere Informationen über Storeadm.exe finden Sie unter Isolated Storage-Tool .

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

    }
}

Siehe auch

Konzepte

Isolationstypen

Referenz

IsolatedStorageFile

IsolatedStorageScope

Weitere Ressourcen

Verwenden der isolierten Speicherung

Assemblys in der Common Language Runtime (CLR)