【发布时间】:2011-02-16 12:43:22
【问题描述】:
我正在尝试将 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- 这是您的问题,或者我们没有查看真实代码。 -
你如何反序列化?如果您使用的是
XmlSerializer,您可能需要公开您的课程。 -
@Henk - 无法在这里发布原始代码..所以不得不做这个例子..但我希望你能得到我想要做的事情。
-
@Nekresh - 是的。所有课程都是公开的。
-
@Sharath:我更喜欢原件的复制粘贴,也许有一些删除。这很有可能让我们追查您的拼写错误而不是问题。
标签: c# xml deserialization