【发布时间】:2010-11-02 09:30:13
【问题描述】:
下面的怎么序列化
[XmlRoot("response")]
public class MyCollection<T>
{
[XmlElement("person", Type = typeof(Person))]
public List<T> entry;
public int startIndex;
}
其中 T 可以是类,如
public class Person
{
public string name;
}
进入
<response>
<startIndex>1</startIndex>
<entry>
<person>
<name>meeee</name>
</person>
</entry>
<entry>
<person>
<name>youuu</name>
</person>
</entry>
</response>
我一直在玩 [XmlArray]、[XmlArrayItem] 和 [XmlElement],但我似乎无法获得正确的组合。啊啊啊。
更新:
[XmlArray("entry")]
[XmlArrayItem("person", Type = typeof(Person))]
public List<T> entry;
给我
<entry><person></person><person></person></entry>
[XmlElement("person", Type = typeof(Person))]
public List<T> entry;
给我
<person></person><person></person>
【问题讨论】:
-
泛型仍然会是个问题...封闭类型中的T是什么(只有封闭类型可以序列化)?
-
我也不确定这与默认值有什么关系——也许是重新命名...真的是关于嵌套子对象吗?
-
一个开放的泛型类型是 List
;一个封闭的泛型类型是 List 的关系。不知道T,很难理解List 和Person -
@seanlinmt:如果你仍然感兴趣,我可以通过 XSD.EXE 运行 OpenSocial 模式,并且我已经学会了如何填充和序列化它。
标签: c# .net xml-serialization