/// <summary> /// Parses the supplied XML into an instance of /// <see cref="AtomFeed" />. /// </summary> /// <param name="xml"> /// A string of characters containing the XML representation of an Atom Feed. /// </param> /// <param name="serializer"> /// An <see cref="IContentSerializer" /> used to deserialize custom /// content to objects. /// </param> /// <returns> /// A new instance of <see cref="AtomFeed" /> containing the data from /// the supplied <paramref name="xml" />. /// </returns> /// <exception cref="System.ArgumentNullException"> /// <paramref name="serializer" /> is <see langword="null" />. /// </exception> public static AtomFeed Parse(string xml, IContentSerializer serializer) { if (serializer == null) { throw new ArgumentNullException("serializer"); } var sr = new StringReader(xml); try { using (var r = XmlReader.Create(sr)) { sr = null; return(AtomFeed.ReadFrom(r, serializer)); } } finally { if (sr != null) { sr.Dispose(); } } }
private AtomFeed ReadIndex() { var indexAddress = new Uri(((Guid)this.id).ToString(), UriKind.Relative); using (var r = this.storage.CreateFeedReaderFor(indexAddress)) return(AtomFeed.ReadFrom(r, this.serializer)); }
private AtomFeed GetPreviousPage(AtomFeed current) { var previousLink = current.Links.SingleOrDefault(l => l.IsPreviousLink); if (previousLink == null) { return(null); } using (var r = this.storage.CreateFeedReaderFor(previousLink.Href)) return(AtomFeed.ReadFrom(r, this.serializer)); }
private AtomFeed ReadPage(Uri address) { using (var r = this.storage.CreateFeedReaderFor(address)) return(AtomFeed.ReadFrom(r, this.serializer)); }