我正在尝试将XML反序列化为对象,但在某些情况下遇到了困难。请问有人能帮助我吗?
XML:
<?xml version="1.0" ?>
<Level>
<Warp_Blocks>
<Warp_Block>
<Block row="7" col="7" />
<Block row="2" col="7" />
</Warp_Block>
<Warp_Block>
<Block row="4" col="4" />
<Block row="3" col="7" />
</Warp_Block>
</Warp_Blocks>
</Level>
代码:
[XmlRoot("Level")]
public class LData
{
[XmlArray("Warp_Blocks")]
[XmlArrayItem("Warp_Block",typeof(WarpBlock),IsNullable = false)]
public List<WarpBlock> WarpBlocks;
}
public class LBlock
{
[XmlAttribute("row")]
public int row;
[XmlAttribute("col")]
public int col;
}
public class WarpBlock
{
[XmlArray("Warp_Block")]
[XmlArrayItem("Block",typeof(LBlock),IsNullable= false)]
public List<LBlock> WarpBlocks;
public WarpBlock()
{
WarpBlocks = new List<LBlock>();
}
}
我能够反序列化一级,也就是说我可以得到一个Item对象列表,但是单个的Item对象不包含块(Block)对象列表。这里我做错了什么?
class Items
- 要么这是你的问题,要么我们没有看到真正的代码。 - H HXmlSerializer
,你可能需要将你的类设为公共类。 - Nekresh