更改XML序列化程序的数组元素的名称
我有一个类,它是通过XSD.exe工具从XML文件生成的。我有一个包含元素的数组。更改XML序列化程序的数组元素的名称
直到最近,从完全实例化的业务对象呈现整个文档是可能的,但是由于大小的原因,我们现在需要将文档数组元素呈现为流,以便我们不会耗尽内存。
但是,当您渲染数组元素时,您将在XML序列化中获得不同的元素名称。我尝试创建一个XMLAttributesOverride,但是这返回了一个错误,指出我无法重写此属性上的XmlElement属性。我试图保持这种强类型和与我的XSD相关,所以如果有人知道如何将XML元素的名称更改为他们的数组名称+1答案。
您是否尝试过使用XmlArray和XmlArrayElement属性?
http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlarrayattribute.aspx
http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlarrayitemattribute.aspx
[XmlArrayItem(ElementName="GenericItem", Type = typeof(Item))]
[XmlArrayItem(ElementName="BookItem", Type = typeof(BookItem))]
[XmlArray]
public Item []Items {...}
问题是XML架构不受我控制。因此,我试图尽可能避免在类中编辑代码。 – Spence 2010-02-14 20:48:19
很好地工作 - 谢谢。 – 2010-05-07 15:22:03
试试这个:)
[XmlType(TypeName="MyItems")]
public class MyItems:List<Item>
{ }
结果XML是:
<MyItems xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Item>...</Item>
</MyItems>
您应该能够使用替代。显示您使用的代码会产生错误。 – Cheeso 2010-02-16 02:00:49