XML序列化-复杂类型到c#类

本文关键字:类型 复杂 序列化 XML | 更新日期: 2023-09-27 18:16:23

我将XML文件序列化为对象。我们不要讨论如何序列化它,因为这不是问题。问题是如何为复杂类型元素构建类。对于普通的XML元素,我按照下面的方式操作(当然是使用System.Xml.Serialization)

public class Item
{
    [XmlElement("thumbnail")]
    public string thumbnail { get; set; }
}

一切正常。但对于复杂类型,我不知道如何在类中表示,我试着用这样的数组来表示

public class Item
{
    [XmlArray("thumbnail")]
    [XmlArrayItem("url")]
    public string url { get; set; }
    [XmlArrayItem("width")]
    public string width { get; set; }
    [XmlArrayItem("height")]
    public string height { get; set; }
    public string[] thumbnail { get; set; }
 }

但是这不起作用。

如何在c#类中表示XML复杂元素?

XML序列化-复杂类型到c#类

你应该有一个Item类和一个Thumbnail类,更像这样:

public class item {
    [XmlElement("thumbnail")]
    public thumbnail thumbnail {get;set;}
}
public class thumbnail
{
    [XmlElement("url")]
    public string url { get; set; }
    [XmlElement("width")]
    public string width { get; set; }
    [XmlElement("height")]
    public string height { get; set; }
 }