Поделиться через


Практическое руководство. Получение хранилищ для изолированного хранения

Обновлен: Ноябрь 2007

Хранилище предоставляет виртуальную файловую систему в секции данных. IsolatedStorageFile предоставляет ряд методов для взаимодействия с хранилищем. Для создания и получения хранилищ класс IsolatedStorageFile предоставляет три статических метода. Вызов метода GetUserStoreForAssembly или метода GetUserStoreForDomain возвращает хранилище, изолированное по пользователю и сборке и по пользователю, домену и сборке, соответственно. Эти два метода возвращают хранилище, принадлежащее к тому же блоку кода, из которого они были вызваны. Статический метод 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. Для этого необходимо разрешение на доступ к изолированному хранилищу по идентификатору домена приложения. Для получения дополнительных сведений см. метод GetStore. Дополнительные сведения о сборках см. в разделе Сборки.

Каждый из этих трех методов возвращает объект IsolatedStorageFile. Дополнительные сведения о выборе наиболее подходящего типа изоляции см. в разделе Типы изоляции. Как только получен объект файла изолированного хранилища, можно использовать методы изолированного хранилища для чтения, записи, создания и удаления файлов и каталогов.

Не существует механизма предотвращения передачи кодом объекта IsolatedStorageFile коду, не имеющему прав доступа, необходимых для самостоятельного получения хранилища. Идентификации доменов и сборок и разрешения изолированного хранения проверяются только при получении ссылки на объект IsolatedStorage, обычно в методах GetStore, GetUserStoreForAssembly или GetUserStoreForDomain. Таким образом, ответственность за защиту ссылок на объекты IsolatedStorageFile несет код, использующий эти ссылки.

Пример получения хранилища

Следующий пример кода является очень простой демонстрацией получения классом хранилища, изолированного по пользователю и сборке. Код может быть изменен для получения хранилища, изолированного по пользователю, домену и сборке, путем добавления IsolatedStorageScope.Domain к аргументам, передающимся методу GetStore.

После выполнения кода можно убедиться в том, что хранилище создано, набрав StoreAdm /LIST в командной строке. Эта команда вызывает программу администрирования изолированного хранилища (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

Другие ресурсы

Выполнение задач изолированного хранения

Сборки в среде CLR