protected override void OnWriteDetailContents(System.Xml.XmlDictionaryWriter writer) { var ser = new XmlSerializer(details.GetType()); ser.Serialize(writer, details); writer.Flush(); }
private static void DumpEncoderSize(System.Xml.XmlDictionaryWriter writer, Message copy) { var ms = new MemoryStream(); string configuredEncoder = string.Empty; if (writer is IXmlTextWriterInitializer) { var w = (IXmlTextWriterInitializer)writer; w.SetOutput(ms, Encoding.UTF8, true); configuredEncoder = "Text"; } else if (writer is IXmlMtomWriterInitializer) { var w = (IXmlMtomWriterInitializer)writer; w.SetOutput(ms, Encoding.UTF8, int.MaxValue, "", null, null, true, false); configuredEncoder = "MTOM"; } else if (writer is IXmlBinaryWriterInitializer) { var w = (IXmlBinaryWriterInitializer)writer; w.SetOutput(ms, null, null, false); configuredEncoder = "Binary"; } copy.WriteMessage(writer); writer.Flush(); var size = ms.Position; Console.WriteLine("Message size using configured ({1}) encoder {0}", size, configuredEncoder); }