And*_*ndy 2 .net c# xml xmlserializer
我的问题最好通过一个简单的例子来描述.考虑这样的2个类:
class Order {
[XmlAttribute] int orderId;
[XmlAttribute] int customerId;
List<OrderItem> items;
}
class OrderItem {
[XmlAttribute] int partCode;
[XmlAttribute] int quantity;
}
Run Code Online (Sandbox Code Playgroud)
使用XmlSerializer,这将序列化为这样的:
<order orderId="...", customerId="..." >
<Items>
<orderItem partCode="..." quantity="..." />
</Items>
</order>
Run Code Online (Sandbox Code Playgroud)
我想要做的是删除<Items>级别,以便<orderItem>元素直接在相应的<order>下面
有没有办法做到这一点?
使用XmlElement属性:
class Order {
[XmlAttribute] int orderId;
[XmlAttribute] int customerId;
[XmlElement]
List<OrderItem> items;
}
Run Code Online (Sandbox Code Playgroud)
使用此属性,您还可以为对象指定自定义元素名称OrderItem,甚至为每个子类型指定不同的元素名称OrderItem