Blocking problem Deserializing XML to object problem
- by fernando
I have a blocking problem
I have XML file under some url http://myserver/mywebApp/myXML.xml
In the below code which I run in Console Application, bookcollection has null Books field :(
<books>
<book id="5352">
<date>1986-05-05</date>
<title>
Alice in chains
</title>
</book>
<book id="4334">
<date>1986-05-05</date>
<title>
1000 ways to heaven
</title>
</book>
<book id="1111">
<date>1986-05-05</date>
<title>
Kitchen and me
</title>
</book>
</books>
XmlDocument doc = new XmlDocument();
doc.Load("http://myserver/mywebapp/myXML.xml");
BookCollection books = new BookCollection();
XmlNodeReader reader2 = new XmlNodeReader(doc.DocumentElement);
XmlSerializer ser2 = new XmlSerializer(books.GetType());
object obj = ser2.Deserialize(reader2);
BookCollection books2= (BookCollection)obj;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
[Serializable()]
public class Book
{
[System.Xml.Serialization.XmlAttribute("id")]
public string id { get; set; }
[System.Xml.Serialization.XmlElement("date")]
public string date { get; set; }
[System.Xml.Serialization.XmlElement("title")]
public string title { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
namespace ConsoleApplication1
{
[Serializable()]
[System.Xml.Serialization.XmlRootAttribute("books", Namespace = "", IsNullable = false)]
public class BookCollection
{
[XmlArray("books")]
[XmlArrayItem("book", typeof(Book))]
public Book[] Books { get; set; }
}
}