Vorgehensweise: Erhalten von Speichern für isolierten Speicher
Ein isolierter Speicher macht ein virtuelles Dateisystem in einem Datendepot verfügbar. Die IsolatedStorageFile-Klasse bietet eine Reihe von Methoden für die Interaktion mit einem isolierten Speicher. Zum Erstellen und Abrufen von Speichern stellt IsolatedStorageFile drei statische Methoden bereit:
GetUserStoreForAssembly gibt Speicher zurück, der nach Benutzer und Assembly isoliert ist.
GetUserStoreForDomain gibt Speicher zurück, der nach Domäne und Assembly isoliert ist.
Beide Methoden rufen einen Speicher ab, der zu dem Code gehört, von dem sie aufgerufen werden.
Die statische Methode GetStore gibt einen isolierten Speicher zurück, der durch die Übergabe einer Kombination von Bereichsparametern angegeben wird.
Der folgende Code gibt einen Speicher zurück, der nach Benutzer, Assembly und Domäne isoliert ist.
IsolatedStorageFile^ isoStore = IsolatedStorageFile::GetStore(IsolatedStorageScope::User |
IsolatedStorageScope::Assembly | IsolatedStorageScope::Domain, (Type ^)nullptr, (Type ^)nullptr);
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)
Sie können mit der GetStore-Methode angeben, dass ein Speicher mit einem Roamingbenutzerprofil wechseln soll. Näheres zur entsprechenden Einrichtung erfahren Sie unter Isolationstypen.
Isolierte Speicher, die von unterschiedlichen Assemblys abgerufen werden, sind standardmäßig unterschiedliche Speicher. Sie können auf den Store einer anderen Assembly oder Domäne zugreifen, indem Sie den Assembly- oder Domänenbeweis in den Parametern der GetStore-Methode übergeben. Dies setzt die Berechtigung zum Zugriff auf isolierten Speicher durch Anwendungsdomänenidentität voraus. Weitere Informationen finden Sie bei den GetStore-Methodenüberladungen.
Die GetUserStoreForAssembly-, GetUserStoreForDomain- und GetStore-Methode geben ein IsolatedStorageFile-Objekt zurück. Um zu entscheiden, welcher Isolationstyp für Ihre Situation am besten geeignet ist, lesen Sie Isolationstypen. Wenn Sie über ein Dateiobjekt verfügen, das ein isolierter Speicher ist, können Sie Methoden für isolierten Speicher verwenden, um aus Dateien und Verzeichnissen zu lesen, in sie zu schreiben, sie zu erstellen und zu löschen.
Es gibt keinen Mechanismus, der verhindert, dass Code ein IsolatedStorageFile-Objekt an Code übergibt, der nicht über ausreichende Zugriffsrechte verfügt, um den Speicher selbst abzurufen. Domänen- und Assemblyidentitäten und Berechtigungen für isolierten Speicher werden nur überprüft, wenn ein Verweis auf ein IsolatedStorage-Objekt abgerufen wird, in der Regel in der GetUserStoreForAssembly-, GetUserStoreForDomain- oder GetStore-Methode. Der Schutz von Verweisen auf IsolatedStorageFile-Objekte liegt daher in der Verantwortung des Codes, der diese Verweise verwendet.
Beispiel
Der folgende Code bietet ein einfaches Beispiel einer Klasse, die einen Speicher abruft, der nach Benutzer und Assembly isoliert ist. Der Code kann durch Hinzufügen von IsolatedStorageScope.Domain zu den Argumenten, die die GetStore-Methode übergibt, geändert werden, um einen Speicher abzurufen, der nach Benutzer, Domäne und Assembly isoliert ist.
Nachdem Sie den Code ausgeführt haben, können Sie sicherstellen, dass ein Speicher erstellt wurde, indem Sie StoreAdm /LIST in der Befehlszeile eingeben. Dadurch wird das Tool „Isolierter Speicher“ (Storeadm.exe) ausgeführt, und alle aktuellen isolierten Speicher des Benutzers werden aufgelistet.
using namespace System;
using namespace System::IO::IsolatedStorage;
public ref 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, (Type ^)nullptr, (Type ^)nullptr);
}
};
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