C#:具有循环链接的节点的xml序列化

Pyg*_*gmy 6 c# xml serialization hyperlink cyclic

我有一个类Node这样的类:

class Node {
    IEnumerable<Node> inputs;
}
Run Code Online (Sandbox Code Playgroud)

这基本上定义了一个简单的图形.我想将我的图形序列化为一个人类可读的形式,所以通常我会说xml是要走的路.但是XML并不是用循环依赖关系制作的:)

那么 - 我的图表序列化的最佳方法是什么?

我可以想到几个方面:

  • 沟通XML,创建我自己的格式.
  • 使用XML,使用唯一ID标记每个节点,存储与节点分开的连接列表并在加载后解析

但我认为其他人之前必须遇到同样的问题,所以可能会有更好的选择.有谁知道一个坚实的方法?

Mar*_*ell 3

对于 xml,我会使用 id 方法(更改 DTO 模型,使其不是循环的)。

请注意,可以通过在重载构造函数中DataContractSerializer传入truefor选项来自动支持循环对象图;preserveObjectReferences它不会像XmlSerializer输出那么简单,但它仍然是可读的。