SerializeDeserialize_ja - Houzkin/TreeStructures GitHub Wiki
シリアライズ可能なDictionaryを生成する拡張メソッド、ToSerializableNodeMapを使用してシリアライズ・デシリアライズ可能です。
string path = "Test.xml";
var tree = "ABCDEFG".ToCharArray().Select(x => new NamedNode() { Name = x.ToString() }).AssembleAsNAryTree(2);
//各ノードが保持するデータをシリアライズ可能なオブジェクトに変換
var seri = tree.ToSerializableNodeMap(x=>x.Name);
//Serialize
var serializer = new XmlSerializer(typeof(SerializableNodeMap<string>));
using (StreamWriter fs = new StreamWriter(path)){
serializer.Serialize(fs, seri);
}
//Deserialize
SerializableNodeMap<string> snm;
using (StreamReader sr = new StreamReader(path)){
snm = (SerializableNodeMap<string>)serializer.Deserialize(sr);
}
var tr = snm.AssembleTree(x => new NamedNode() { Name = x.ToString() });
Console.WriteLine(tr.ToTreeDiagram(x => x.Name));