Учитывая ваш пример XML, вы сможете проанализировать XML в одном месте.Ради этого ответа предположим, что ваши Book
и Chapter
следующие
class Book
{
public string Version { get; set; }
public string Type { get; set; }
public List<Chapter> Chapters { get; set; }
}
class Chapter
{
public int Number { get; set; }
public string Title { get; set; }
}
Затем, чтобы использовать XML для создания Book
объекта, мы можем сделать это
Book book = new Book
{
Version = xmlDoc.Root.Element("version").Value,
Type = xmlDoc.Root.Element("type").Value,
Chapters = (from chapter in xmlDoc.Descendants("chapters")
select new Chapter
{
Number = (int)chapter.Element("chapter"),
Title = chapter.Element("title").Value
}).ToList()
};
Примечание: я собираюсь пойти на занятия здесь, потому что структуры должны быть небольшими и (предпочтительно) неизменяемыми, тогда как ваша книга и ее главы могут быть последними, но вряд ли будут первыми.Тот факт, что объект инкапсулирует другие неструктуры, является для меня мертвой раздачей того, что объект также не должен быть структурным.