我试图反序列化的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