Я пытаюсь десериализовать XML файл в несколько объектов класса: Artist, Album и Songs
Вот текущая настройка:
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; }
}
В настоящее время проблема заключается в том, что если есть несколько исполнителей, альбомов и/или песен, то она заполняет только первый. Как я могу сделать это, чтобы он заполнил их все для альбома или все песни для исполнителя... и т.д. Я попытался настроить их как массивы, но он не работал. Спасибо заранее.