public static void Deserialise(this List<Link> links, JsonReader reader) { if (reader.Read() && reader.State == TJsonReaderState.Array) { Link link = null; while (reader.Read() && reader.State != TJsonReaderState.EndArray) { switch (reader.State) { case TJsonReaderState.Object: link = new Link(); links.Add(link); break; case TJsonReaderState.Member: string attribute = reader.Text; reader.Read(); if (string.Compare(attribute, "rel", true) == 0) link.rel = reader.Text; else if (string.Compare(attribute, "href", true) == 0) link.href = reader.Text; else throw new NotSupportedException("Unsupported attribute: " + attribute); break; default: break; } } } }
public static void Deserialise(this List<Link> links, XmlReader reader) { if (reader.NodeType == XmlNodeType.Element && reader.Name.Equals("Links")) { while (reader.Read() && reader.NodeType == XmlNodeType.Element && reader.Name.Equals("Link")) { Link link = new Link(); link.rel = reader.GetAttribute("rel"); link.href = reader.GetAttribute("href"); links.Add(link); } } }