public TracePayload GetSerializedPayload(object source, TraceRecord traceRecord, Exception exception, bool getServiceReference) { string str = null; string str1 = null; string traceString = null; if (source != null) { str = DiagnosticTraceBase.CreateSourceString(source); } if (traceRecord != null) { StringBuilder stringBuilder = EtwDiagnosticTrace.StringBuilderPool.Take(); try { using (StringWriter stringWriter = new StringWriter(stringBuilder, CultureInfo.CurrentCulture)) { using (XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter)) { xmlTextWriter.WriteStartElement("ExtendedData"); traceRecord.WriteTo(xmlTextWriter); xmlTextWriter.WriteEndElement(); xmlTextWriter.Flush(); stringWriter.Flush(); str1 = stringBuilder.ToString(); } } } finally { EtwDiagnosticTrace.StringBuilderPool.Return(stringBuilder); } } if (exception != null) { traceString = EtwDiagnosticTrace.ExceptionToTraceString(exception, 0x7000); } if (!getServiceReference || EtwDiagnosticTrace.traceAnnotation == null) { return(new TracePayload(traceString, str, DiagnosticTraceBase.AppDomainFriendlyName, str1, string.Empty)); } else { return(new TracePayload(traceString, str, DiagnosticTraceBase.AppDomainFriendlyName, str1, EtwDiagnosticTrace.traceAnnotation())); } }