2013-06-02 66 views
0

我將XML文件序列化爲對象。我們不要談論我如何序列化它,因爲它不是問題。問題是如何爲複雜類型元素構建類。對於普通的XML元素,我這樣做(當然使用System.Xml.Serialization)XML序列化 - 複雜類型到c#類

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複雜元素?

+0

你能告訴示例XML文件? –

+0

向我們展示架構,我們可以提供幫助。然而,.NET框架/ VS SDK帶有一個命令行工具'xsd.exe',它可以使用schema schema文件'schema.xsd'並從中生成C#(或VB)類,這樣您就可以簡單地使用該工具來生成類或至少有一個樣本開始:http://msdn.microsoft.com/en-us/library/x6c1kb0s%28v=vs.110%29.aspx –

+0

感謝您的答覆。我編輯帖子以包含XML文件。我知道xsd.exe,我可以將其用於此目的,但是因爲我有一個項目以標記方式運行,所以我需要以相同的方式執行該項目。謝謝! – RonaDona

回答

1

你應該有一個項目類,和縮略圖類,更是這樣的:

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; } 
} 
+0

你是男人。非常感謝這個工作! – RonaDona