- •А.А. Волосевич
- •2. Базовые технологии платформы .Net 5
- •2. Базовые технологии платформы .Net 4
- •2. Базовые технологии платформы .Net
- •2.1. Работа с Числами
- •2.2. Дата и время
- •2.3. Работа со строками и текстом
- •2.4. Преобразование информации
- •2.5. Отношения равенства и порядка
- •Сравнение для выяснения равенства
- •Сравнение для выяснения порядка
- •2.6. Жизненный цикл объектов
- •Алгоритм «сборки мусора»
- •Финализаторы и интерфейс iDisposable
- •2.7. Перечислители и итераторы
- •2.8. Интерфейсы стандартных коллекций
- •2.9. Массивы и класс system.Array
- •2.10. Типы для работы с коллекциями-списками
- •2.11. Типы для работы с коллекциями-множествами
- •2.12. Типы для работы с коллекциями-словарями
- •2.13. Типы для создания пользовательских коллекций
- •2.14. Технология linq to objects
- •1. Оператор условия Where().
- •2. Операторы проекций.
- •3. Операторы упорядочивания.
- •4. Оператор группировки GroupBy().
- •5. Операторы соединения.
- •6. Операторы работы с множествами.
- •7. Операторы агрегирования.
- •8. Операторы генерирования.
- •9. Операторы кванторов и сравнения.
- •10. Операторы разбиения.
- •11. Операторы элемента.
- •12. Операторы преобразования.
- •2.15. Работа с объектами файЛовой системы
- •2.16. Ввод и вывод информации
- •Потоки данных и декораторы потоков
- •2. Классы для работы с потоками, связанными с хранилищами.
- •3. Декораторы потоков.
- •4. Адаптеры потоков.
- •Адаптеры потоков
- •2.17. Основы xml
- •2.18. Технология linq to xml
- •Создание, сохранение, загрузка xml
- •Запросы, модификация и трансформация xml
- •Пространства имен xml
- •2.19. ДОполнительные возможности обработки xml
- •2.20. Сериализация
- •Сериализация времени выполнения
- •Сериализация контрактов данных
- •2.21. Состав и взаимодействие сборок
- •2.22. Метаданные и получение информации о типах
- •2.23. Позднее связывание и кодогенерация
- •2.24. Динамические типы
- •2.25. Атрибуты
- •2.26. Файлы конфигуРации
- •2.27. Основы мНогопоточноГо программирования
- •2.28. Синхронизация потоков
- •2.29. Библиотека параллельных расширений
- •Параллелизм на уровне задач
- •Параллелизм при императивной обработке данных
- •Параллелизм при декларативной обработке данных
- •Обработка исключений и отмена выполнения задач
- •Коллекции, поддерживающие параллелизм
- •2.30. Асинхронный вызов методов
- •2.31. Процессы и домены
- •2.32. Безопасность
- •Разрешения на доступ
- •Изолированные хранилища
- •Криптография
- •2.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();