示例#1
0
        /// <summary>
        ///     Converte a message em uma Xml string.
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        public static string ToXml(ref Message message)
        {
            string messageXml;

            using (var sw = new VipStringWriter())
                using (var writer = XmlWriter.Create(sw))
                {
                    message.WriteMessage(writer);
                    writer.Flush();

                    messageXml = sw.GetStringBuilder().ToString();
                }

            var reader = XmlReader.Create(new StringReader(messageXml));
            var copy   = Message.CreateMessage(reader, int.MaxValue, message.Version);

            copy.Headers.Clear();
            copy.Headers.CopyHeadersFrom(message);

            foreach (var property in message.Properties)
            {
                copy.Properties[property.Key] = property.Value;
            }

            message.Close();
            message = copy;

            return(messageXml);
        }
示例#2
0
        /// <summary>
        ///     Retorna a XML como string
        /// </summary>
        /// <param name="xmlDoc">The XML document.</param>
        /// <param name="identado">Se for <c>true</c> o XML sai [identado].</param>
        /// <param name="showDeclaration">if set to <c>true</c> [show declaration].</param>
        /// <param name="encode">O enconding do XML.</param>
        /// <returns>System.String.</returns>
        public static string AsString(this XmlNode xmlDoc, bool identado, bool showDeclaration, Encoding encode)
        {
            var settings = new XmlWriterSettings
            {
                Indent             = identado,
                Encoding           = encode,
                OmitXmlDeclaration = !showDeclaration,
                NamespaceHandling  = NamespaceHandling.OmitDuplicates
            };

            using var xmlString = new VipStringWriter(encode);
            using (var xmlTextWriter = XmlWriter.Create(xmlString, settings))
            {
                xmlDoc.WriteTo(xmlTextWriter);
                xmlTextWriter.Flush();
                return(xmlString.ToString());
            }
        }