BinaryFormatter bf = new BinaryFormatter(); FileStream fs = new FileStream ("State.bin",FileMode.Create, FileAccess.Write); bf.Serialize(fs,this); fs.Close(); } Здесь и выполняется сериализация графа объектов. Как видите, все просто. Вначале создается форматер - объект bf класса BinaryFormatter. Затем определяется файл, в котором будет сохраняться состояние объектов, - объект fs класса FileStream. Заметьте, в конструкторе файла, кроме имени файла, указываются его характеристики: статус, режим доступа. На деталях введения файлов я останавливаться не буду. Теперь, когда основные объекты определены, остается вызвать метод Serialize объекта bf, которому в качестве аргументов передается объект fs и текущий объект, представляющий корневой объект графа объектов, которые подлежат сериализации. Глубокая сериализация, реализуемая в данном случае, не потребовала от нас никаких усилий. Нам понадобится еще метод, описывающий жизнь героев сказки: public Personage AskGoldFish() { Personage fisher = this; if (fisher.name == "рыбак") { wishes++; switch (wishes) { |