Как я могу восстановить объект hiearchy / ссылки после десериализации XML в C # - PullRequest
2 голосов
/ 23 ноября 2011

Я строю игровой проект, в котором есть простые объекты-контейнеры, которые могут иметь детей. Мне как-то нужно сохранить «состояние» игры и сериализацию в XML. Тогда я просто буду загружать игру обратно путем сериализации XML, но мне нужно сохранить состояние объектов, ссылок и т. Д. Какова наилучшая практика для достижения этой цели? Чтобы продемонстрировать, подумайте о них:

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

и так далее. У меня есть внутриигровые ссылки между объектами, и мне нужно сохранить это состояние при сохранении / загрузке в XML. У меня нет проблем с самой сериализацией XML в простом сценарии, но я не знаю, как сохранить «связи» между объектами.

Ответы [ 2 ]

2 голосов
/ 23 ноября 2011

Используйте сериализатор, который поддерживает ссылки.DatacontractSerializer может сделать это, например.Для xml вы можете включить его в DataContractSerializer, например http://blogs.msdn.com/b/sowmy/archive/2006/03/26/561188.aspx

1 голос
/ 23 ноября 2011

У меня в руках нет реальных улик, но у меня был друг, который использовал YAML для сериализации дерева и был довольно доволен.

В конце статьи вы также найдете ссылки на библиотеки .NET.

Надеюсь, это поможет.

...