Example #1
0
        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);
        }