我正在開發一個ASP.NET Web API服務,它允許用戶發佈元數據。在Web API數據合同中允許自定義XML
在用戶發佈的數據合同中,他們應該能夠以XML格式發佈自己的自定義元數據。這是一個例子:
<Delivery> <Type>Direct</Type> <Time>12:00:01</Time> <Format>Segmented</Format> <CustomMetadata> <ClientReference>R46375683</ClientReference> <Contact>[email protected]</Contact> </CustomMetadata> </Delivery>
我無法創建成功反序列化正確數據的合同,但是。對於CustomMetadata節點,我有:
[DataMember(EmitDefaultValue=false)]
public XmlNode CustomMetadata { get; set; }
當被反序列,我收到一個異常:
「集合型‘System.Xml.XmlNode’不能反序列化,因爲它 沒有一個有效的Add方法,其參數類型爲 'System.Object'。「
我不完全理解爲什麼它試圖向XmlNode「添加」任何東西,但無論出於何種原因,它都失敗了。有沒有其他方法來做這種事情,比如反序列化到另一種類型?我試圖反序列化爲一個字符串,但這也給了一個例外。
直接點,謝謝!真的認爲我應該能夠自己找到這個,所以-1對我來說是一個糟糕的研究。 –
就像參考一樣,我發現XmlNode []更適合上述示例。使用XmlElement,你必須有一個根元素,但是對於XmlNode [],你可以有幾個元素作爲直接的子元素。 –