/// <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); }
/// <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()); } }