我有一个GameOptions对象,它包含Tiles列表和Options列表。将一个GameOptions对象放入一个列表中,然后我将其序列化为我提供一个类似于此的格式:
<GameOptions>
<Tiles>
<Tile1>
</Tile1>
</Tiles>
<Options>
<Option1>
</Option1>
<Options>
</GameOptions>
我想知道怎样才能将保存的文件重新定义为GameOptions对象,我可以访问Tiles和Options值?之前,当我需要阅读XML文件时,我只是加载了文档,经历了每个节点并复制了值,但我不认为这种方法会再次起作用,因为有些节点属于Tile类,而其他属于Options类。先感谢您!
这是我以前用于序列化的代码:
XmlSerializer serializer = new XmlSerializer(gameSave.GetType());
StreamWriter writer = new StreamWriter(@"savedmap.xml");
serializer.Serialize(writer.BaseStream, gameSave);
答案 0 :(得分:0)
这可能需要稍加调整,但这是一个粗略的反序列化实现:
private GameOptions Deserialize()
{
var serializer = new XmlSerializer(typeof(GameOptions));
using (var reader = new StreamReader(@"savedmap.xml"))
{
return (GameOptions)serializer.Deserialize(reader);
}
}