我有一个简单的数组,我需要将其序列化为更大的对象的一部分。
public class Holder
{
public int ID { get; set; }
public string Name { get; set; }
public Thing[] Thingies { get; set; }
}
public class Thing {}
通常这会被序列化为:
...
<Holder>
<ID>...</ID>
<Name>...</Name>
<ArrayOfThing>
<Thing>...</Thing>
<Thing>...</Thing>
<Thing>...</Thing>
...
</ArrayOfThing>
</Holder>
不要过多担心反序列化,有没有办法可以简单地删除ArrayOf元素,但保留元素,以便我有:
...
<Holder>
<ID>...</ID>
<Name>...</Name>
<Thing>...</Thing>
<Thing>...</Thing>
<Thing>...</Thing>
...
</Holder>
答案 0 :(得分:1)
尝试
public class Holder
{
public int ID { get; set; }
public string Name { get; set; }
[XmlElement("Thing")]
public Thing[] Thingies { get; set; }
}
MSDN for XmlElementAttribute也有一些例子。
答案 1 :(得分:0)
您可以实现IXmlSerializable,以便从包含XML元素中读取和写入Thing或其他子元素。
答案 2 :(得分:0)
使用[XmlElement]
属性:
[XmlElement]
public Thing[] Thingies { get; set; }