public void ReadXml(XmlReader reader)
 {
     var elementName = string.Empty;
     while (reader.Read())
     {
         if (reader.NodeType == XmlNodeType.Element)
         {
             elementName = reader.Name;
             switch (elementName)
             {
                 case "TypeAliases":
                     {
                         var subReader = reader.ReadSubtree();
                         var aliases = new List<NetTypeAlias>();
                         while (subReader.ReadToFollowing("TypeAlias"))
                         {
                             var aliasReader = subReader.ReadSubtree();
                             var typeAlias = new NetTypeAlias();
                             typeAlias.ReadXml(aliasReader);
                             aliases.Add(typeAlias);
                         }
                         TypeAliases = aliases.ToArray();
                         break;
                     }
                 case "Snippets":
                     {
                         var subReader = reader.ReadSubtree();
                         var snippets = new List<Snippet>();
                         while (subReader.ReadToFollowing("Snippet"))
                         {
                             var snippet = new Snippet();
                             snippet.ReadXml(subReader);
                             snippets.Add(snippet);
                         }
                         Snippets = snippets.ToArray();
                         break;
                     }
             }
         }
         else if (reader.NodeType == XmlNodeType.Text)
         {
             switch (elementName)
             {
                 case "Modifiers":
                     Modifiers = reader.Value.Split(' ');
                     break;
                 case "MemberIdentifiers":
                     MemberIdentifiers = reader.Value.Split(' ');
                     break;
                 case "Keywords":
                     Keywords = reader.Value.Split(' ');
                     break;
             }
         }
         else if (reader.NodeType == XmlNodeType.EndElement)
         {
             elementName = string.Empty; 
         }
     }
 }
示例#2
0
        public void ReadXml(XmlReader reader)
        {
            var elementName = string.Empty;

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    elementName = reader.Name;
                    switch (elementName)
                    {
                    case "TypeAliases":
                    {
                        var subReader = reader.ReadSubtree();
                        var aliases   = new List <NetTypeAlias>();
                        while (subReader.ReadToFollowing("TypeAlias"))
                        {
                            var aliasReader = subReader.ReadSubtree();
                            var typeAlias   = new NetTypeAlias();
                            typeAlias.ReadXml(aliasReader);
                            aliases.Add(typeAlias);
                        }
                        TypeAliases = aliases.ToArray();
                        break;
                    }

                    case "Snippets":
                    {
                        var subReader = reader.ReadSubtree();
                        var snippets  = new List <Snippet>();
                        while (subReader.ReadToFollowing("Snippet"))
                        {
                            var snippet = new Snippet();
                            snippet.ReadXml(subReader);
                            snippets.Add(snippet);
                        }
                        Snippets = snippets.ToArray();
                        break;
                    }
                    }
                }
                else if (reader.NodeType == XmlNodeType.Text)
                {
                    switch (elementName)
                    {
                    case "Modifiers":
                        Modifiers = reader.Value.Split(' ');
                        break;

                    case "MemberIdentifiers":
                        MemberIdentifiers = reader.Value.Split(' ');
                        break;

                    case "Keywords":
                        Keywords = reader.Value.Split(' ');
                        break;
                    }
                }
                else if (reader.NodeType == XmlNodeType.EndElement)
                {
                    elementName = string.Empty;
                }
            }
        }