Пример с сериализацией и десериализаций списка объектов
Файл operator.cs
Реализуется список операторов (пользователей). В класс Operator
определяются атрибуты: фамилия, логин, пароль. Класс Operators - список
объектов типа Operator.
В классе ConfigOper реализуются методы:
- Testoper - создание XML-файла с одной записью. Вызывается, если
XML-файла нет.
- ConfigDeser - Десериализация Xml-документа в экземпляр класса Operators()
- ConfigSer - Сериализация (запись) объекта m в файл fname
Заметим, что ConfigSer - универсальный метод, не зависящий от типа объекта,
а ConfigDeser - зависит из-за наличия строки
moper = (Operators)serializer.Deserialize(reader);
Вопрос: можно ли сделать этот метод универсальным?
Файл form1.cs
Это код (неполный), реализующий форму для работы со списком пользователей.
Поскольку визуально форма может выглядеть по-разному,
обратите внимание на основные методы:
- RunOper() - Вызывается из меню
- Form1_Load - при загрузке формы создается файл XML, если его нет.
Список пользователей отражается в ListBox'е
- Form1_FormClosed - при закрытии формы данные сохраняются в XML-файле
- LBOper_SelectedIndexChanged - при выборе пользвателя в списку
отображаются его атрибуты
- button3_Click - добавляет нового пользователя
- button2_Click - удаляет пользователя
Зачечания.
1.Естественно, здесь не хватает проверок (повторная запись, пустые поля и т.п.)
1.Удаление не работает. Разберитесь, почему.
Л.Ч.