2010-02-14 158 views
1

我有一個類,它是通過XSD.exe工具從XML文件生成的。我有一個包含元素的數組。更改XML序列化程序的數組元素的名稱

直到最近,從完全實例化的業務對象呈現整個文檔是可能的,但是由於大小的原因,我們現在需要將文檔數組元素呈現爲流,以便我們不會耗盡內存。

但是,當您渲染數組元素時,您將在XML序列化中獲得不同的元素名稱。我嘗試創建一個XMLAttributesOverride,但是這返回了一個錯誤,指出我無法重寫此屬性上的XmlElement屬性。我試圖保持這種強類型和與我的XSD相關,所以如果有人知道如何將XML元素的名稱更改爲他們的數組名稱+1答案。

+0

您應該能夠使用替代。顯示您使用的代碼會產生錯誤。 – Cheeso 2010-02-16 02:00:49

回答

8

您是否嘗試過使用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 {...} 
+0

問題是XML架構不受我控制。因此,我試圖儘可能避免在類中編輯代碼。 – Spence 2010-02-14 20:48:19

+0

很好地工作 - 謝謝。 – 2010-05-07 15:22:03

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> 
相關問題