【发布时间】:2018-07-13 06:55:22
【问题描述】:
实际代码和 xml 文件
程序代码
class Program
{
static void Main(string[] args)
{
string path = AppDomain.CurrentDomain.BaseDirectory + "file.xml";
//string path2 = @"F:\fd.xml";
FileStream fs = new FileStream(path, FileMode.Open);
XmlReader reader = XmlReader.Create(fs);
SaveGame sav = new XmlSerializer(typeof(SaveGame)).Deserialize(reader) as SaveGame;
Console.WriteLine(sav.player.friendshipData[0].key);
Console.WriteLine(sav.player.friendshipData[0].value.Points);
fs.Close();
Console.ReadKey();
}
}
public class SaveGame
{
public Player player { get; set; }
}
public class Player
{
public item[] friendshipData { get; set; }
}
public class item
{
public string key { get; set; }
public Friendship value { get; set; }
}
public class Friendship
{
public int Points {get;set;}
}
}
要使用的 XML 文件:
<SaveGame>
<player>
<friendshipData>
<item>
<key>
<string>Name1</string>
</key>
<value>
<Friendship>
<Points>324</Points>
</Friendship>
</value>
</item>
<item>
<key>
<string>Name2</string>
</key>
<value>
<Friendship>
<Points>98</Points>
</Friendship>
</value>
</item>
</friendshipData>
</player>
</SaveGame>
我尝试了其他帖子,但这不起作用,因为所有读取的值都是空的。
请问,如何反序列化这个文件?请解释一下。
如果我将 {get;set;} 设置为变量,它不会读取下一个项目,如果我设置 {get;} 它会读取每个项目,但每个项目都有空值。
以防万一,由于某些原因,我无法编辑 XML 文件。 XML 文件没问题。
【问题讨论】:
-
“因为我一直得到一个异常,这意味着我不能反序列化这个 XML 文档。”请具体说明您尝试过的excatly 以及遇到的异常情况。我怀疑您是否希望我们发布您已经尝试过的相同方法,是吗?所以请帮助我们写出真正对您有帮助的有意义的答案。
-
除非我们知道您的数据结构,否则这并没有多大帮助。请显示您的代码、类型和反序列化方式。再说一遍:发布异常。
-
等一下……
-
写你想要的
标签: c# xml serialization deserialization