我正在尝试创建一个 XML 输出文件以导入另一个程序。我得到的示例 XML 文件如下所示:
<SalesOrder>
<OrderHeader>
<BillTo>
<EntityID>1234</EntityID>
</BillTo>
</OrderHeader>
<LineItemList>
<OrderLineComment>
<LineItemID>1</LineItemID>
</OrderLineComment>
<LineItem>
...
</LineItem>
<LineItem>
...
</LineItem>
<LineItem>
...
</LineItem>
...
</LineItemList>
</SalesOrder>
我有一个 C# 项目,它能够使用 XmlSerializer 输出这种类型的文件,但此部分除外:
<LineItemList>
<OrderLineComment>
<LineItemID>1</LineItemID>
</OrderLineComment>
LineItemList 部分只是一个 LineItem 列表,但在 LineItemList 的开头添加了这个不同的元素 OrderLineComment。
如果我将其表示为 LineItems 数组,那么除了缺少 OrderLineComment 之外,它看起来是一样的。如果我将其表示为包含 OrderLineComment 和 LineItems 数组的新对象 LineItemList,我会得到:
<LineItemList>
<OrderLineComment>
<LineItemID>1</LineItemID>
</OrderLineComment>
<LineItems>
<LineItem>
...
</LineItem>
...
</LineItems>
哪个有我想要的,除了它用<LineItems>
标签包装所有 LineItems,这也不是我想要的。
所以我想知道的是:
- 有没有办法通过 XmlSerializer 做到这一点?如果是这样,怎么做?
- 如果没有,我必须重写代码以使用 XmlSerializer 以外的东西,那么最好的方法是什么,为什么?
提前致谢。