【发布时间】:2008-11-19 01:33:25
【问题描述】:
我有一组自定义实体对象,其中一个属性是字节数组的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 也是如此。
在反序列化过程之后,生成的自定义实体集合很好,除了集合中的每个对象不包含其子集合中的任何项目。 (即它没有达到上面的“......做更多的事情......”。
有人可以解释我做错了什么吗?是否可以在自定义实体的通用集合中序列化 ArrayList?
【问题讨论】:
标签: c# web-services serialization