Ok я есть файл Xml так:XML десериализации в списке
<?xml version="1.0" encoding="utf-8" ?>
<Books>
<Book>
<Name>book name</Name>
<Url>book url</Url>
<Genre>book genre</Genre>
<City>book city</City>
<Country>book country</Country>
</Book>
<Book>
<Name>book name</Name>
<Url>book url</Url>
<Genre>book genre</Genre>
<City>book city</City>
<Country>book country</Country>
</Book>
<Book>
<Name>book name</Name>
<Url>book url</Url>
<Genre>book genre</Genre>
<City>book city</City>
<Country>book country</Country>
</Book>
</Books>
И я хочу использовать Deserialization
для того, чтобы заполнить List
с книгами. У меня есть класс, как это:
[Serializable]
public class Book
{
public string Name{get; set;}
public string Url { get; set; }
public string Genre { get; set; }
public string City { get; set; }
public string Country { get; set; }
}
И в List
вроде этого:
List<Book> BookList;
Я пытаюсь читать из XML-файла, как это:
XmlSerializer serializer = new XmlSerializer(typeof(Book));
FileStream fs = new FileStream(@"Book.xml", FileMode.Open);
using (XmlReader reader = XmlReader.Create(fs))
{
BookList.Add((Book)serializer.Deserialize(reader));
reader.Close();
}
Но я получаю ошибка в Xml-файле всякий раз, когда я запускаю свое приложение. Если я изменю свой xml-файл на это:
<Book>
<Name>book name</Name>
<Url>book url</Url>
<Genre>book genre</Genre>
<City>book city</City>
<Country>book country</Country>
</Book>
все идет нормально, ожидайте, что я прочитал только 1 книгу. Я хочу читать около 100 книг. Есть идеи?
Следует отметить, что код @ I4V исправляет также проблему, с которой OP_w сталкивается еще дальше из-за инструкции 'read.Close();' инструкция внутри using. –