Сериализация/десериализация двумерного массива - C#
Формулировка задачи:
Есть класс:
Есть двумерный массив экземпляров класса:
Задача:
Cериализовать данный массив, периодически повторно сериализовать его в процессе работы программы. При последующем запуске программы десериализовать и так же периодически повторять сериализацию в процессе работы.
Сериализация:
Десериализация:
Проблема:
При первом запуске программы корректно сериализует массив в файл, корректно обновляет файл. При повторном запуске программы корректно десериализует. НО!!! в процессе работы недописывает файл, обрываясь в прямом смысле на полустрочке. Отладка показывает вход в сериализацию, пропуск всех операций процедуры, идущих после сериализации и вылетание из процедуры.
Есть у кого-нибудь идеи, где собака зарыта?
[Serializable()] public class Location { //реализация }
private Location[][] location; location=new Location[180][]; for (int i = 0; i < 180; i++) { location[i] = new Location[114]; for(int j = 0; j < 114; j++)location[i][j] = new Location(i, j); }
XmlSerializer serializer = new XmlSerializer(typeof(Location[][])); System.IO.FileStream writer = new System.IO.FileStream(@"map.xml", System.IO.FileMode.Create); System.IO.StreamWriter file = new System.IO.StreamWriter(writer,Encoding.GetEncoding("windows-1251")); serializer.Serialize(file, location); writer.Close();
XmlSerializer serializer = new XmlSerializer(typeof(Location[][])); System.IO.FileStream reader = new System.IO.FileStream(@"map.xml",System.IO.FileMode.Open); System.IO.StreamReader file = new System.IO.StreamReader(reader, Encoding.GetEncoding("windows-1251")); location=(Location[][])serializer.Deserialize(file); reader.Close();
столько просмотров и ни одной версии
Решение задачи: «Сериализация/десериализация двумерного массива»
textual
Листинг программы
private Location[][] location; location=new Location[180][]; for (int i = 0; i < 180; i++) { location[i] = new Location[114]; for(int j = 0; j < 114; j++)location[i][j] = new Location(i, j); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д