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
                }
            }
        }
Beispiel #2
0
        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;
                    }
                }
            }
        }