public static XmlDocument RenderToXmlDocument(this XmlRenderer xmlRenderer, WorkStep workStep) { var doc = new XmlDocument(); using (var writeStream = new MemoryStream()) { xmlRenderer.Render(writeStream, workStep); var readStream = new MemoryStream(writeStream.ToArray()); doc.Load(readStream); } return(doc); }
/// <summary> /// Retrieves an XML representation of the documentation specified by <paramref name="entry"/>. /// </summary> /// <param name="entry">The Entry to obtain documentation for.</param> /// <returns>An XmlDocument containing the documentation.</returns> private string GetDocumentationFor(Entry entry) { if (null == entry) { throw new ArgumentNullException("The provided Entry was null."); } string stringOutput = string.Empty; using (MemoryStream output = new MemoryStream()) { XmlWriterSettings settings = new XmlWriterSettings(); settings.Encoding = Encoding.UTF8; using (XmlWriter writer = XmlWriter.Create(output, settings)) { XmlRenderer r = XmlRenderer.Create(entry, _baseDocument); if (r == null) { return(null); // simply return a null reference if we cant find the renderer for the entry } r.Render(writer); writer.Flush(); writer.Close(); // get memory stream contents as a string output.Seek(0, SeekOrigin.Begin); StreamReader s = new StreamReader(output); stringOutput = s.ReadToEnd(); } } return(stringOutput); }