Udostępnij za pośrednictwem


Porady: uzyskiwanie magazynów dla izolowanego magazynu

Izolowany magazyn uwidacznia wirtualny system plików w przedziale danych. Klasa IsolatedStorageFile dostarcza szereg metod interakcji z izolowanym magazynem. Aby utworzyć i pobrać magazyny, IsolatedStorageFile udostępnia trzy metody statyczne:

  • GetUserStoreForAssembly Zwraca magazyn, który jest izolowany przez użytkownika i zestaw.

  • GetUserStoreForDomain Zwraca magazyn, który jest izolowany przez domenę i zestaw.

    Obie metody pobierają magazyn, który należy do kodu, z którego są wywoływane.

  • Metoda GetStore statyczna zwraca izolowany magazyn określony przez przekazanie kombinacji parametrów zakresu.

Poniższy kod zwraca magazyn, który jest izolowany przez użytkownika, zestaw i domenę.

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)

Możesz użyć GetStore metody , aby określić, że sklep powinien poruszać się z profilem użytkownika mobilnego. Aby uzyskać szczegółowe informacje na temat sposobu konfigurowania tego ustawienia, zobacz Typy izolacji.

Izolowane magazyny uzyskane z różnych zestawów są domyślnie różnymi magazynami. Dostęp do magazynu innego zestawu lub domeny można uzyskać, przekazując dowody zestawu lub domeny w parametrach GetStore metody. Wymaga to uprawnień dostępu do izolowanego magazynu według tożsamości domeny aplikacji. Aby uzyskać więcej informacji, zobacz GetStore przeciążenia metody.

Metody GetUserStoreForAssembly, GetUserStoreForDomaini GetStore zwracają IsolatedStorageFile obiekt. Aby ułatwić podjęcie decyzji, który typ izolacji jest najbardziej odpowiedni dla danej sytuacji, zobacz Typy izolacji. Jeśli masz izolowany obiekt pliku magazynu, możesz użyć izolowanych metod magazynowania do odczytu, zapisu, tworzenia i usuwania plików i katalogów.

Nie ma mechanizmu uniemożliwiającego IsolatedStorageFile przekazanie obiektu do kodu, który nie ma wystarczającego dostępu do samego magazynu. Tożsamości domeny i zestawu i izolowane uprawnienia magazynu są sprawdzane tylko wtedy, gdy zostanie uzyskane odwołanie do IsolatedStorage obiektu, zazwyczaj w metodzie GetUserStoreForAssembly, GetUserStoreForDomainlub GetStore . Ochrona odwołań do IsolatedStorageFile obiektów jest zatem obowiązkiem kodu, który używa tych odwołań.

Przykład

Poniższy kod zawiera prosty przykład klasy uzyskującej magazyn, który jest izolowany przez użytkownika i zestaw. Kod można zmienić, aby pobrać magazyn, który jest izolowany przez użytkownika, domenę i zestaw, dodając IsolatedStorageScope.Domain do argumentów, które GetStore przekazuje metoda.

Po uruchomieniu kodu możesz potwierdzić, że magazyn został utworzony, wpisując ciąg StoreAdm /LIST w wierszu polecenia. Spowoduje to uruchomienie narzędzia izolowanego magazynu (Storeadm.exe) i wyświetlenie listy wszystkich bieżących izolowanych magazynów dla użytkownika.

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

Zobacz też