public override void WriteToStream(Type type, object value, System.IO.Stream writeStream, HttpContent content) { using (var writer = new StreamWriter(writeStream)) { SegmentFilter segFilter = value as SegmentFilter; if (segFilter != null) { string postRequestUrl = BuildPostRequestUrl(segFilter); try { //content.Headers.ContentLength = postRequestUrl.Length; writer.WriteLine(postRequestUrl); } catch (Exception e) { Log.WriteEntry("SegmentFilterFormatter::WriteToStream() exception.\r\n" + e.ToString()); } } } }
static string BuildPostRequestUrl(SegmentFilter filter) { var xns = new XmlSerializerNamespaces(); xns.Add(string.Empty, string.Empty); StringBuilder sb = new StringBuilder(); var xmlSettings = new XmlWriterSettings(); xmlSettings.OmitXmlDeclaration = true; string postRequest = "Stylesheet=../../ScheduleEditor/Styles/ScheduleLoadData.xsl&data_in="; XmlSerializer x = new XmlSerializer(typeof(SegmentFilter)); using (XmlWriter writer = XmlWriter.Create(sb, xmlSettings)) { x.Serialize(writer, filter, xns); postRequest += WebUtility.UrlEncode(sb.ToString()); } return(postRequest); }