man*_*ang 1 c# xml serialization xml-serialization
查看有关XML序列化的Microsoft文章:
https://msdn.microsoft.com/zh-CN/library/58a18dwa.aspx
它们在“序列化对象数组”下给出了一个示例,如下所示:
public class PurchaseOrder
{
public Item [] ItemsOrders
}
public class Item
{
public string ItemID
public decimal ItemPrice
}
Run Code Online (Sandbox Code Playgroud)
输出:
<PurchaseOrder>
<Items>
<Item>
<ItemID>aaa111</ItemID>
<ItemPrice>34.22</ItemPrice>
</Item>
<Item>
<ItemID>bbb222</ItemID>
<ItemPrice>2.89</ItemPrice>
</Item>
</Items>
</PurchaseOrder>
Run Code Online (Sandbox Code Playgroud)
困扰我的是“商品”标签。在我看来,仅“ Item”标签应该是“ PurchaseOrder”的子级。“项目”标签似乎不必要且令人困惑。我可能是错的。
有没有办法让这个例子像这样序列化:
<PurchaseOrder>
<Item>
<ItemID>aaa111</ItemID>
<ItemPrice>34.22</ItemPrice>
</Item>
<Item>
<ItemID>bbb222</ItemID>
<ItemPrice>2.89</ItemPrice>
</Item>
</PurchaseOrder>
Run Code Online (Sandbox Code Playgroud)
您可以使用属性控制序列化。从“使用属性控制XML序列化 ”:要删除代表整个数组的元素,请使用[XmlElement]属性:
Run Code Online (Sandbox Code Playgroud)public class Group{ [XmlElement] public Employee[] Employees; }
这产生
Run Code Online (Sandbox Code Playgroud)<Group> <Employees> <Name>Haley</Name> </Employees> <Employees> <Name>Noriko</Name> </Employees> <Employees> <Name>Marco</Name> </Employees> </Group>
| 归档时间: |
|
| 查看次数: |
4885 次 |
| 最近记录: |