public virtual void ReadXml(XmlReader reader) { if (null == reader) { throw new ArgumentNullException("reader"); } if (reader.IsEmptyElement) { reader.Read(); return; } var name = reader.Name; while (reader.Read()) { if (XmlNodeType.EndElement == reader.NodeType && reader.Name == name) { reader.Read(); break; } while (XmlNodeType.Element == reader.NodeType) { #if NET20 Add(XmlReaderExtensionMethods.Deserialize <T>(reader)); #else Add(reader.Deserialize <T>()); #endif } } }
void IXmlSerializable.ReadXml(XmlReader reader) { if (null == reader) { throw new ArgumentNullException("reader"); } if (reader.IsEmptyElement) { reader.Read(); return; } var name = reader.Name; while (reader.Read()) { #if NET20 if (XmlReaderExtensionMethods.IsEndElement(reader, name)) #else if (reader.IsEndElement(name)) #endif { reader.Read(); break; } while (XmlNodeType.Element == reader.NodeType) { switch (reader.Name) { case "directories": #if NET20 Directories = XmlReaderExtensionMethods.Deserialize <DirectoryCollection>(reader); #else Directories = reader.Deserialize <DirectoryCollection>(); #endif break; case "files": #if NET20 Files = XmlReaderExtensionMethods.Deserialize <FileCollection>(reader); #else Files = reader.Deserialize <FileCollection>(); #endif break; } } } }