我有一個自定義實體對象的集合,其中一個屬性是字節數組的一個ArrayList
。如何反序列化具有子集合的集合?
自定義實體是可序列化和收藏屬性被標記爲具有以下屬性:[XmlArray("Images"), XmlArrayItem("Image",typeof(byte[]))]
所以我序列化這些自定義實體的集合,並將它們傳遞到Web服務,作爲一個字符串。
Web服務接收機智的字符串和字節數組,
下面的代碼然後嘗試反序列化集合 - 回用於處理自定義實體...
XmlSerializer ser = new XmlSerializer(typeof(List<myCustomEntity>));
StringReader reader = new StringReader(xmlStringPassedToWS);
List<myCustomEntity> entities = (List<myCustomEntity>)ser.Deserialize(reader);
foreach (myCustomEntity e in entities)
{
// ...do some stuff...
foreach (myChildCollection c in entities.ChildCollection
{
// .. do some more stuff....
}
}
我檢查由初始序列化產生的XML,它包含字節數組 - 子集合,就像上面構建的StringReader一樣。
反序列化過程之後,自定義實體的結果集合就沒有問題,只是集合中的每個對象都沒有在其子集合中包含任何項目。 (即它不會達到「...做更多的東西...」
有人可以請解釋我做錯了什麼?是否有可能在自定義實體的通用集合中序列化ArrayLists?
我確實有XmlArrayItem標籤 - 我在想如果字節數組的「ArrayList」是問題。 – 2008-11-19 02:07:27
謝謝你在那裏的努力。問題不在於我的序列化到底如何,使得這個問題「有點」難以回答,而是與財產本身有關。對不起,再次感謝您的努力。 – 2008-11-19 04:48:03