XNA 4.0でツリーをシリアル化したいのですが、各ノードには、intによってインデックス付けされたメンバーディクショナリ内の子ノードがあります。
[Serializable]
public class Node
{
private Dictionary<int, Node> children;
}
私の意図は、特定のノードをシリアル化すると、そのノードをルートとして持つすべてのサブツリーがシリアル化されることです。しかし、テストしようとすると、辞書のシリアル化に問題があるようで、エラー(簡略化)で応答します。
System.InvalidOperationException was unhandled
Message=There was an error reflecting type 'Baddies.Node.Node'.
InnerException: System.NotSupportedException
Message=Cannot serialize member Baddies.Nodes.Node.Children of type System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Baddies.Nodes.Node, Baddies, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], because it implements IDictionary.
私の質問は二重の質問です。まず、クラスDictionaryがシリアル化可能である場合、これは私が期待することを実行しますか?(つまり、すべてのサブツリーをシリアル化します)。次に、辞書クラスをシリアル化するにはどうすればよいですか?
ありとあらゆる情報を歓迎します。お時間をいただきありがとうございます。