コード例 #1
0
        /// <summary>
        /// Converts the <see cref="IDataReader"/> into a <see cref="XDocument"/>.
        /// </summary>
        /// <param name="reader">The reader.</param>
        /// <param name="rootElementName">Name of the root element.</param>
        /// <param name="rowElementName">Name of the row element.</param>
        public static XDocument ToXDocument(this IDataReader reader, string rootElementName, string rowElementName)
        {
            if (reader == null)
            {
                return(null);
            }
            if (string.IsNullOrEmpty(rootElementName))
            {
                rootElementName = "root";
            }
            if (string.IsNullOrEmpty(rowElementName))
            {
                rowElementName = "row";
            }

            var xd = XDocument.Parse(string.Format("<{0} />", rootElementName));

            reader.AddXElements(xd.Root, rowElementName);

            return(xd);
        }
コード例 #2
0
        /// <summary>
        /// Adds the x elements.
        /// </summary>
        /// <param name="reader">The reader.</param>
        /// <param name="rootElement">The root element.</param>
        /// <param name="rowElementName">Name of the row element.</param>
        /// <remarks>
        /// This is the root-level method, adding row-elements to the root element.
        /// </remarks>
        public static void AddXElements(this IDataReader reader, XElement rootElement, string rowElementName)
        {
            if (reader == null)
            {
                return;
            }
            if (rootElement == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(rowElementName))
            {
                rowElementName = "row";
            }

            while (reader.Read())
            {
                var rowElement = new XElement(rowElementName);
                reader.AddXElements(rowElement);
                rootElement.Add(rowElement);
            }
        }