Вероятно, самый простой способ сделать это - сериализовать объекты непосредственно в файл, используя класс BinaryFormatter
.Вам нужно убедиться, что все ваши типы помечены как [Serializable]
, но этот подход быстрый и простой.
Вот простой пример методов «чтения» и «записи» для произвольного объектаgraph:
private void SerializeToFile(string fileName, object o)
{
var binaryFormatter = new BinaryFormatter();
using (var fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None))
{
binaryFormatter.Serialize(fileStream, o);
}
}
private object DeserializeFromFile(string fileName)
{
var binaryFormatter = new BinaryFormatter();
using (var fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None))
{
return binaryFormatter.Deserialize(fileStream);
}
}
Другие подходы включают XmlSerialization (класс XmlSerializer
) - лучше, если вы хотите, чтобы сериализованные объекты были удобочитаемыми или редактируемыми для человека или использовали более новую DataContractSerializer
.