} // GetDvbStpClientSegmentInfoList private void Deserialize() { if (Request.AvoidDeserialization) { return; } Worker.ReportProgress(999); foreach (var payload in Request.Payloads) { if (payload.XmlType != null) { payload.XmlDeserializedData = UiDvbStpSimpleDownloadResponse.ParsePayload(payload.XmlType, payload.Data, payload.PayloadId, !Request.AllowXmlExtraWhitespace, Request.XmlNamespaceReplacer); } // if if (!Request.KeepRawData) { payload.Data = null; } // if } // foreach } // Deserialize
} // DisplayParsingData #endregion #region BackgroundWorker DoWork void Worker_DoWork(object sender, DoWorkEventArgs e) { DvbStpSimpleClient stpClient; byte[] payload; InitWorker(e); stpClient = new DvbStpSimpleClient(Request.MulticastAddress, Request.MulticastPort); CancelDownloadRequest = stpClient.CancelRequest; try { stpClient.ReceiveDatagramTimeout = Request.ReceiveDatagramTimeout; stpClient.NoDataTimeout = Request.NoDataTimeout; stpClient.SectionReceived += StpClient_SectionReceived; stpClient.PayloadSectionReceived += StpClient_PayloadSectionReceived; payload = stpClient.GetPayload(Request.PayloadId, Request.SegmentId); Response.Version = stpClient.SegmentVersion; e.Result = payload; #if DEBUG if ((payload != null) && (Request.DumpToFile != null)) { File.WriteAllBytes(Request.DumpToFile, payload); } // if #endif if ((Request.PayloadDataType != null) && (payload != null)) { Worker.ReportProgress(int.MaxValue); Response.DeserializedPayloadData = UiDvbStpSimpleDownloadResponse.ParsePayload(Request.PayloadDataType, payload, Request.PayloadId, !Request.AllowXmlExtraWhitespace, Request.XmlNamespaceReplacer); } // if } finally { e.Cancel = Worker.CancellationPending; stpClient.Close(); } // finally } // Worker_DoWork