在XML反序列化期间,是否有任何方法可以将XmlArrayItem
的位置存储在类属性中的XmlArray
中?
class PO {
[XmlArray("POLines")]
[XmlArrayItem("POLine")]
List<PO_Line> LineItems {get;set;}
}
class PO_Line {
[XmlElement("ItemCode")]
string ItemCode {get;set;}
[XmlElement("UnitCost")]
string UnitCost {get;set;}
[XmlElement("Quantity")]
string Quantity {get;set;}
int LineNo {get;set;} // store index number of array item here
}
例如,在下面的PO文件中,将创建一个包含三个List<PO_Line>
的新PO_Line
。第一个将LineNo
属性设置为1,第二个将其LineNo
设置为2,第三个(可以预测)将其LineNo
设置为3。
<POFile>
<POHead>
<PONumber>POR12345</PONumber>
<Customer>ACME001</Customer>
</POHead>
<POLines>
<POLine>
<ItemCode>12345</ItemCode>
<UnitCost>2.99</UnitCost>
<Quantity>100</Quantity>
</POLine>
<POLine>
<ItemCode>23456</ItemCode>
<UnitCost>1.99</UnitCost>
<Quantity>200</Quantity>
</POLine>
<POLine>
<ItemCode>34567</ItemCode>
<UnitCost>5.99</UnitCost>
<Quantity>500</Quantity>
</POLine>
</POLines>
</POLine>
很明显,在XML反序列化之后,我可以遍历PO
,但是我想知道是否有更干净的方法。