Xml孩子没有反序列化

时间:2016-01-27 18:07:02

标签: c# xml-deserialization

  public class MenuNavigationItem
  {
    public int Code { get; set; }
    public string Name { get; set; }
    public int Parent { get; set; }
    public int No { get; set; }
    public int ParentCode { get; set; }
    public string Level { get; set; }
    public string PageName { get; set; }
    public string ObjectName { get; set; }
    [XmlArray(ElementName = "MenuNavigationItem")]
    public List<MenuNavigationItem> Children { get; set; }

  }
  <MenuNavigationItem Code="4" Name="Products">
    <Parent>0</Parent>
    <No>4</No>
    <ParentCode>0</ParentCode>
    <Code>4</Code>
    <Level>1</Level>
    <Name>Products</Name>


    <!-- Product HarvestMax-->
    <MenuNavigationItem Code="41" Name="HarvestMax">
      <Parent>4</Parent>
      <No>41</No>
      <ParentCode>4</ParentCode>
      <Code>41</Code>
      <Level>2</Level>
      <Name>HarvestMax</Name>
      <MenuNavigationItem Code="411" Name="Quote">
        <Parent>41</Parent>
        <No>411</No>
        <ParentCode>41</ParentCode>
        <Code>411</Code>
        <Level>3</Level>
        <Name>Quote</Name>
        <PageName>GBCOPersonalLines\GBCOPersonalLinesProducts\GBCOHOBrowse.aspx?ObjectType=Q</PageName>
        <ObjectName>GBCOHO</ObjectName>
        <HotKey>Q</HotKey>
    </MenuNavigationItem>
  </MenuNavigationItem>

我收回了产品的孩子们,它没有放置HarvestMax,而是放置了HarvestMax的孩子。多奇怪。

导致此问题的原因以及如何解决?

1 个答案:

答案 0 :(得分:0)

解决

我需要使用XmlElement而不是XmlArray属性。然后它完美地运作了。