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