我搜索了几个小时,发现了类似的结果,但没有针对此特定方案。考虑以下XML文件。
<root>
<largeImages>
<largeImage>
<url>./imageLarge.jpg</url>
<height>480</height>
<width>640</width>
</largeImage>
</largeImages>
<smallImages>
<smallImage>
<url>./imageSmall.jpg</url>
<height>240</height>
<width>320</width>
</smallImage>
</smallImages>
</root>
我正在尝试将其反序列化为单个图像阵列,而不是2个阵列。
public class root {
[XmlArray("largeImages")]
[XmlArrayItem("largeImage")]
public image[] largeImages { get; set; }
[XmlArray("smallImages")]
[XmlArrayItem("smallImage")]
public image[] smallImages { get; set; }
}
这个课给我2个数组。root.largeImages和root.smallImages。由于我的应用程序不关心大小图像,因此我想反序列化为单个数组root.images。我尝试了XmlArray,XmlArrayItem,XmlElement甚至XmlChoiceIdentifier的变体,但均未成功。我正在考虑以下内容,这些内容将无法编译,因为显然XmlArrayAttribute每个属性只能使用一次。
[XmlArray("largeImages")]
[XmlArray("smallImages")]
[XmlArrayItem("largeImage")]
[XmlArrayItem("smallImage")]
public image[] images { get; set; }
显然,在对XML进行反序列化之后,我可以在代码中合并2个数组,但这似乎应该很简单。
相关分类