我試圖反序列化的XML文件到幾類對象:藝術家,專輯和歌曲反序列化的XElement成Class(S)
這是當前設置:
static void Main(string[] args)
{
var riseAgainst = DeSerializer(CreateElement());
Console.WriteLine(string.Format("Band: {0}",riseAgainst.Name));
Console.WriteLine("-----------------------------");
Console.WriteLine(string.Format("Album: {0}",riseAgainst.Album.Name));
Console.WriteLine("-----------------------------");
Console.WriteLine("Song List:\r");
foreach(var s in riseAgainst.Album.Songs)
{
Console.WriteLine(string.Format("Song: {0}", s));
}
Console.ReadLine();
}
static XElement CreateElement()
{
return new XElement("Artist",
new XElement("Name", "Rise Against"),
new XElement("Album",
new XElement("Name", "Appeal to Reason"),
new XElement("Songs",
new XElement("Song", "Hero of War"),
new XElement("Song", "Savior"))
)
);
}
static Artist DeSerializer(XElement element)
{
var serializer = new XmlSerializer(typeof(Artist));
return (Artist)serializer.Deserialize(element.CreateReader());
}
}
public class Artist
{
public string Name { get; set; }
public Albums Album { get; set; }
}
public class Albums
{
public string Name { get; set; }
public Songs Songs { get; set; }
}
public class Songs
{
public string Song { get; set; }
}
這個問題我目前有如果有多個藝術家,專輯和/或歌曲,那麼它只填充第一個。我怎樣才能使它充滿所有的專輯,或爲藝術家的所有歌曲...等我試着把它們設置爲陣列,但它沒有奏效。提前致謝。
向我們展示一個_more_ than 1藝術家和反序列化代碼的列表。提示:你還有一個「藝術家」班嗎? – 2011-06-10 20:19:54