在创建和使用XML文件方面,这是一个非常新的东西。
比如说我有这个用于存储高分的代码
[Serializable]
public class HighScoreData
{
public string[] PlayerName;
public int[] Score;
public int[] Level;
}
我希望在反序列化时创建xml代码,看起来像这样
playername = {“Rocco”,“Shawn”,“Derrick”}
得分= {100,200,300}
等级= {1,2,3}
xml代码会是什么样的?
答案 0 :(得分:4)
为什么你这样建模?在我看来,以下示例更具吸引力。
[Serializable]
public class HighScoreData
{
public string PlayerName;
public int Score;
public int Level;
}
[Serializable]
public class HighScoresCollection
{
List<HighScoreData> HighScores;
}
然后,当您序列化highScore时,您会得到类似的结果:
<HighScoresCollection>
<HighScoreData>
<PlayerName>Rocco</PlayerName>
<Score>100</Score>
<Level>1</Level>
</HighScoreData>
<HighScoreData>
<PlayerName>Shawn</PlayerName>
<Score>200</Score>
<Level>2</Level>
</HighScoreData>
<HighScoreData>
<PlayerName>Derrick</PlayerName>
<Score>300</Score>
<Level>3</Level>
</HighScoreData>
</HighScoresCollection>
嗯,在我的例子中对HighScoresCollection
类的需求是有争议的,你可以只有一个分数列表,IMO。
答案 1 :(得分:0)
我怀疑你想拥有多个成员(Arrays)的单个对象。我认为你需要一个对象数组。 无论如何,你的样本是:
<HighScoreData>
<ArrayOfPlayerName>
<PlayerName>Rocco</PlayerName>
<PlayerName>Shawn</PlayerName>
<PlayerName>Derrick</PlayerName>
</ArrayOfPlayerName>
<ArrayOfScore>
<Score>100</Score>
<Score>200</Score>
<Score>300</Score>
</ArrayOfScore>
<ArrayOfLevel>
<Level>1</Level>
<Level>2</Level>
<Level>3</Level>
</ArrayOfLevel>
</HighScoreData>
对于数组对象,XML应该是这样的:
<HighScoreData>
<Player>
<PlayerName>Rocco</PlayerName>
<Score>100</Score>
<Level>1</Level>
</Player>
<Player>
<PlayerName>Shawn</PlayerName>
<Score>200</Score>
<Level>2</Level>
</Player>
<Player>
<PlayerName>Derrick</PlayerName>
<Score>300</Score>
<Level>3</Level>
</Player>
</HighScoreData>
答案 2 :(得分:-1)
如下:
<xml>
<HighScoreData>
<PlanerName>Player 1</PlayerName>
<Score>200</Score>
<Level>1</Level>
</HighScoreData>
<HighScoreData>
<PlanerName>Player 2</PlayerName>
<Score>100</Score>
<Level>1</Level>
</HighScoreData>
...
</xml>