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; } } }
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; } } }