如何在c#中重构XML反序列化后的对象层次结构/引用?

本文关键字:对象 层次结构 引用 反序列化 XML 重构 | 更新日期: 2023-09-27 18:15:27

我正在构建一个游戏项目,其中有可以有孩子的简单容器对象。我需要保存游戏的"状态"并将其序列化为XML。然后我将通过序列化XML来加载游戏,但我需要保存对象、链接等的状态。实现这一目标的最佳实践是什么?要进行演示,请考虑以下内容:

GameObject Bag (ID 1234)
--------------
Sword (object ID 5678, some reference to another object in game: 0987)

等等。我在游戏中有对象之间的引用,我需要在保存/加载到XML时保持这种状态。在一个简单的场景中,我对XML序列化本身没有问题,但是我不知道如何保持对象之间的"链接"。

如何在c#中重构XML反序列化后的对象层次结构/引用?

使用支持引用的序列化器。例如,DatacontractSerializer可以做到这一点。例如,对于xml,可以在DataContractSerializer中启用它http://blogs.msdn.com/b/sowmy/archive/2006/03/26/561188.aspx

我手头没有真正的证据,但我有一个朋友使用YAML进行树序列化,并且非常满意。

在文章的末尾,您还可以找到可用的。net库的参考。