0
私は非常に複雑なバイナリ検索ツリーを持っています。それはノードのデータは、カスタムKeyValueクラスのオブジェクトを保持する必要があります。キーとして文字列があり、値は別のツリーで、データフィールドにはカスタムKeyValueクラスのオブジェクトが含まれています。ここでkeyは文字列、valueはstring []です。バイナリツリーを含む子オブジェクトの束を使って汎用バイナリ検索ツリーをシリアライズ
XMLシリアライザを使用して、シリアライズおよびデシリアライズする必要があります。
問題は、シリアル化が正しく行われていないことです。 XMLファイルには要素としてのノードは含まれず、データのみが含まれます。
したがって、逆シリアル化することはできません。新しいツリーのルートはnullです。 ここでは、シリアル化を実行する方法を示します。
XmlSerializer XMLserializer = new XmlSerializer(typeof(RecursiveKeyValueTree<string, RecursiveKeyValueTree<string, string[]>>), extraTypes);
XmlSerializerNamespaces myNamespace = new XmlSerializerNamespaces();
myNamespace.Add("", "");
using (FileStream serializationStream = File.Create("dictionaryTreeExample.xml"))
XMLserializer.Serialize(serializationStream, dictionaryTree, myNamespace);
RecursiveKeyValueTree<string, RecursiveKeyValueTree<string, string[]>> dictionaryTreeDeserialized;
using (FileStream deserializationStream = File.OpenRead("dictionaryTreeExample.xml"))
{
dictionaryTreeDeserialized = (RecursiveKeyValueTree<string, RecursiveKeyValueTree<string, string[]>>)XMLserializer.Deserialize(deserializationStream);
}
XMLファイル:バイナリツリー内
バイナリツリーを表すために使用するオブジェクトグラフを表示できますか? – code4life