Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Классы.NET для операций с файловой системой находятся в основном в пространстве имен System.IO.
.NET включает также ряд классов и интерфейсов в пространстве имен System.Runtime.Serialization, которые связаны с сериализацией, то есть, процессом преобразования некоторых данных (например, содержимого документа) в поток байтов для хранения в файле или другом объекте, к которому применимы операции последовательного ввода-вывода. Чтобы обеспечить поддержку сериализации в собственных классах достаточно назначить им атрибут [ Serializable() ]. Атрибуты в С# задают дополнительные и особые свойства элементам языка и указываются в квадратных скобках непосредственно перед тем элементом, к которому они применяются. Если классу назначен этот атрибут, все его поля данных будут по умолчанию сохранятся в файле или в другом потоковом объекте при передаче объекта этого класса методу сериализации. Чтобы исключить определённые поля класса, например, временные и вспомогательные переменные, из операции сериализации, этим элементам следует назначить атрибут [ NonSerialized() ]
Например, сохранение объекта obj некоторого класса X в файле с именем fileName с использованием сериалиации может быть выполнено следующим образом:
BinaryFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
stream.Close();
А восстановление сохранённого объекта из файла:
BinaryFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
X obj = (X)formatter.Deserialize(stream);
stream.Close();
Использование классов, применяемых при сериализации, требует подключения к модулю следующих пространств имён:
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
Класс List поддерживает сериализацию и при её выполнении в потоковом объекте сохраняются все элементы динамического массива. Но чтобы этот механизм работал, требуется, чтобы сами элементы массива также поддерживали сериализацию. Соответственно, классы, объекты которых используются в качестве элементов динамического массива, должны быть сделаны сериализуемыми.
При обработке команд меню, связанных с файловыми операциями, часто используются классы.NET, которые обеспечивают создание стандартных диалоговых панелей Windows, обеспечивающих выбор файла для открытия и сохранения. Это классы OpenFileDialog и SaveFileDialog. С примерами их использования можно ознакомиться в справочной системе Visual Studio.NET.
Дата публикования: 2015-06-12; Прочитано: 183 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!