- •А.А. Волосевич
- •1. Работа с Числами
- •2. Дата и время
- •3. Работа со строками и текстом
- •4. Преобразование информации
- •5. Отношения равенства и порядка
- •Сравнение для выяснения равенства
- •Сравнение для выяснения порядка
- •6. Жизненный цикл объектов
- •Алгоритм «сборки мусора»
- •Финализаторы и интерфейс iDisposable
- •7. Перечислители и итераторы
- •8. Интерфейсы стандартных коллекций
- •9. Массивы и класс system.Array
- •10. Типы для работы с коллекциями-списками
- •11. Типы для работы с коллекциями-множествами
- •12. Типы для работы с коллекциями-словарями
- •13. Типы для создания пользовательских коллекций
- •14. Технология linq to objects
- •1. Оператор условия Where().
- •2. Операторы проекций.
- •3. Операторы упорядочивания.
- •4. Оператор группировки GroupBy().
- •5. Операторы соединения.
- •6. Операторы работы с множествами.
- •7. Операторы агрегирования.
- •8. Операторы генерирования.
- •9. Операторы кванторов и сравнения.
- •10. Операторы разбиения.
- •11. Операторы элемента.
- •12. Операторы преобразования.
- •15. Работа с объектами файЛовой системы
- •16. Ввод и вывод информации
- •Потоки данных и декораторы потоков
- •2. Классы для работы с потоками, связанными с хранилищами.
- •3. Декораторы потоков.
- •4. Адаптеры потоков.
- •Адаптеры потоков
- •17. Основы xml
- •18. Технология linq to xml
- •Создание, сохранение, загрузка xml
- •Запросы, модификация и трансформация xml
- •Пространства имён xml
- •19. ДОполнительные возможности обработки xml
- •20. Сериализация
- •Сериализация времени выполнения
- •Сериализация контрактов данных
- •21. Состав и взаимодействие сборок
- •22. Метаданные и получение информации о типах
- •23. Позднее связывание и кодогенерация
- •24. Динамические типы
- •25. Атрибуты
- •26. Файлы конфигуРации
- •27. Основы мНогопоточноГо программирования
- •28. Синхронизация потоков
- •29. Библиотека параллельных расширений
- •Параллелизм на уровне задач
- •Параллелизм при императивной обработке данных
- •Параллелизм при декларативной обработке данных
- •Обработка исключений и отмена выполнения задач
- •Коллекции, поддерживающие параллелизм
- •30. Асинхронный вызов методов
- •31. Процессы и домены
- •32. Безопасность
- •Разрешения на доступ
- •Изолированные хранилища
- •Криптография
- •33. Диагностика
Изолированные хранилища
Изолированное хранилище (isolated storage) – механизм, позволяющий сохранять данные приложения на компьютере локального пользователя без предоставления прав доступа к файлам, базам данных и реестру.
Изолированное хранилище предлагает следующие области изоляции:
1. Изоляция по пользователю:
-
хранилище конкретного пользователя;
-
хранилище компьютера.
2. Изоляция по коду:
-
хранилище приложения;
-
хранилище сборки;
-
хранилище домена.
Управление изолированным хранилищем выполняется при помощи класса System.IO.IsolatedStorage.IsolatedStorageFile, основные методы которого перечислены в табл. 22.
Таблица 22
Методы класса IsolatedStorageFile
Имя элемента |
Описание |
Close() |
Закрывает хранилище |
CreateDirectory() |
Создаёт каталог в изолированном хранилище |
DeleteDirectory() |
Удаляет каталог в изолированном хранилище |
DeleteFile() |
Удаляет из изолированного хранилища файл |
GetDirectoryNames() |
Получает список каталогов изолированного хранилища, соответствующий шаблону поиска |
GetFileNames() |
Получает список файлов изолированного хранилища, соответствующий шаблону поиска |
GetMachineStoreForApplication() |
Получает изолированное хранилище, соответствующее приложению, с областью действия компьютера (стат. метод) |
GetMachineStoreForAssembly() |
Получает изолированное хранилище, соответствующее сборке, с областью действия компьютера (стат. метод) |
GetMachineStoreForDomain() |
Получает изолированное хранилище, соответствующее домену, с областью действия компьютера (статический метод) |
GetStore() |
Получает изолированное хранилище, соответствующее указанным данным изоляции по коду и пользователю (статический метод) |
GetUserStoreForApplication() |
Получает изолированное хранилище, соответствующее приложению, с областью действия пользователя (стат. метод) |
GetUserStoreForAssembly() |
Получает изолированное хранилище, соответствующее сборке, с областью действия пользователя (стат. метод) |
GetUserStoreForDomain() |
Получает изолированное хранилище, соответствующее домену, с областью действия пользователя (стат. метод) |
InitStore() |
Инициализирует новый объект изолированного хранилища |
Remove() |
Удаляет изолированное хранилище со всем ее содержимым (статический метод) |
Класс System.IO.IsolatedStorage.IsolatedStorageFileStream – это поток, который позволяет читать и записывать данные в файлы изолированного хранилища.
Продемонстрируем работу с рассмотренными классами:
// получаем хранилище текущего пользователя и домена
var storage = IsolatedStorageFile.GetUserStoreForDomain();
// создаём подкаталог
storage.CreateDirectory("data");
// открываем или создаём файл (макс. размер = 10K)
var isoStream = new IsolatedStorageFileStream(@"data\file.txt",
FileMode.OpenOrCreate,
FileAccess.Write,
FileShare.Write,
10240,
storage);
// пишем в поток
isoStream.Position = 0;
var writer = new StreamWriter(isoStream);
writer.WriteLine("Useful Info");
// выводим информацию о хранилище
Console.WriteLine("CurrentSize = " + storage.CurrentSize);
Console.WriteLine("MaximumSize = " + storage.MaximumSize);
// закрываем поток и хранилище
writer.Close();
storage.Close();