Partilhar via


Como: Obter armazenamentos para armazenamento isolado

Um armazenamento isolado expõe um sistema de arquivos virtual dentro de um compartimento de dados. A IsolatedStorageFile classe fornece vários métodos para interagir com um armazenamento isolado. Para criar e recuperar lojas, IsolatedStorageFile fornece três métodos estáticos:

  • GetUserStoreForAssembly Retorna o armazenamento isolado por usuário e assembly.

  • GetUserStoreForDomain Retorna o armazenamento isolado por domínio e assembly.

    Ambos os métodos recuperam um repositório que pertence ao código do qual eles são chamados.

  • O método GetStore estático retorna um armazenamento isolado que é especificado passando uma combinação de parâmetros de escopo.

O código a seguir retorna um repositório isolado por usuário, assembly e domínio.

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)

Você pode usar o GetStore método para especificar que uma loja deve fazer roaming com um perfil de usuário móvel. Para obter detalhes sobre como configurar isso, consulte Tipos de isolamento.

Lojas isoladas obtidas de dentro de diferentes montagens são, por padrão, lojas diferentes. Você pode acessar o armazenamento de um assembly ou domínio diferente passando a evidência de assembly ou domínio nos parâmetros do GetStore método. Isso requer permissão para acessar o armazenamento isolado por identidade de domínio do aplicativo. Para obter mais informações, consulte as sobrecargas de GetStore método.

Os GetUserStoreForAssemblymétodos , GetUserStoreForDomain, e GetStore retornam um IsolatedStorageFile objeto. Para ajudá-lo a decidir qual tipo de isolamento é mais apropriado para sua situação, consulte Tipos de isolamento. Quando você tem um objeto de arquivo de armazenamento isolado, pode usar os métodos de armazenamento isolados para ler, gravar, criar e excluir arquivos e diretórios.

Não há nenhum mecanismo que impeça o código de passar um IsolatedStorageFile objeto para um código que não tenha acesso suficiente para obter a própria loja. As identidades de domínio e assembly e as permissões de armazenamento isolado são verificadas somente quando uma referência a um IsolatedStorage objeto é obtida, normalmente no GetUserStoreForAssemblymétodo , GetUserStoreForDomainou GetStore . Proteger referências a IsolatedStorageFile objetos é, portanto, responsabilidade do código que usa essas referências.

Exemplo

O código a seguir fornece um exemplo simples de uma classe obtendo um armazenamento que é isolado por usuário e assembly. O código pode ser alterado para recuperar um repositório isolado por usuário, domínio e assembly adicionando IsolatedStorageScope.Domain aos argumentos que o GetStore método passa.

Depois de executar o código, você pode confirmar que uma loja foi criada digitando StoreAdm /LIST na linha de comando. Isso executa a ferramenta Armazenamento Isolado (Storeadm.exe) e lista todos os armazenamentos isolados atuais para o usuário.

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

Consulte também