我有一个通过XSD.exe工具从XML文件生成的类。我的类包含一个包含元素的数组。
直到最近,从完全实例化的业务对象渲染整个文档是可能的,但是由于尺寸的原因,我们现在需要将文档数组元素渲染到流中,以便我们不会耗尽内存。
但是,在渲染数组元素时,XML序列化中会出现不同的元素名称。我试图创建一个XMLAttributesOverride,但这给我一个错误,指出我无法覆盖此属性上的XmlElement属性。我试图保持这种强类型并与我的XSD相关联,所以如果有人知道如何将XML元素的名称更改为他们的数组名称+1回答。
答案 0 :(得分:11)
您是否尝试过使用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 {...}
答案 1 :(得分:5)
试试这个:)
[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>