Xml children 没有反序列化
Xml children not deserializing
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>
我得到的 children 产品,不是 HarvestMax,而是 HarvestMax 的 children。真奇怪。
是什么原因造成的,我该如何解决?
已解决
我需要使用 XmlElement
而不是 XmlArray
属性。然后完美运行。
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>
我得到的 children 产品,不是 HarvestMax,而是 HarvestMax 的 children。真奇怪。
是什么原因造成的,我该如何解决?
已解决
我需要使用 XmlElement
而不是 XmlArray
属性。然后完美运行。