Deserialize object property with StringReader vs XmlNodeReader
Why does XmlSerializer populate my object property with an XmlNode array when deserializing an empty typed element using XmlNodeReader instead of an empty string like it does when using StringReader (or XmlTextReader )? The second assertion in the following code sample fails: var doc = new XmlDocument(); doc.Load(new StringReader(@" <Test xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""> <Value xsi:type=""xsd:string"" /> </Test>")); var ser = new XmlSerializer(typeof (Test)); var reader1 = new StringReader(doc.InnerXml); var obj1 = (Test)