1 //-----------------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 //-----------------------------------------------------------------------------
5 namespace System.Runtime.Serialization.Diagnostics
7 using System.Collections.Generic;
8 using System.Diagnostics;
9 using System.Globalization;
11 using System.Runtime.Diagnostics;
12 using System.ServiceModel.Diagnostics;
14 static class TraceUtility
16 static Dictionary<int, string> traceCodes = new Dictionary<int, string>(18)
18 { TraceCode.WriteObjectBegin, "WriteObjectBegin" },
19 { TraceCode.WriteObjectEnd, "WriteObjectEnd" },
20 { TraceCode.WriteObjectContentBegin, "WriteObjectContentBegin" },
21 { TraceCode.WriteObjectContentEnd, "WriteObjectContentEnd" },
22 { TraceCode.ReadObjectBegin, "ReadObjectBegin" },
23 { TraceCode.ReadObjectEnd, "ReadObjectEnd" },
24 { TraceCode.ElementIgnored, "ElementIgnored" },
25 { TraceCode.XsdExportBegin, "XsdExportBegin" },
26 { TraceCode.XsdExportEnd, "XsdExportEnd" },
27 { TraceCode.XsdImportBegin, "XsdImportBegin" },
28 { TraceCode.XsdImportEnd, "XsdImportEnd" },
29 { TraceCode.XsdExportError, "XsdExportError" },
30 { TraceCode.XsdImportError, "XsdImportError" },
31 { TraceCode.XsdExportAnnotationFailed, "XsdExportAnnotationFailed" },
32 { TraceCode.XsdImportAnnotationFailed, "XsdImportAnnotationFailed" },
33 { TraceCode.XsdExportDupItems, "XsdExportDupItems" },
34 { TraceCode.FactoryTypeNotFound, "FactoryTypeNotFound" },
35 { TraceCode.ObjectWithLargeDepth, "ObjectWithLargeDepth" },
38 internal static void Trace(TraceEventType severity, int traceCode, string traceDescription)
40 Trace(severity, traceCode, traceDescription, null);
43 internal static void Trace(TraceEventType severity, int traceCode, string traceDescription, TraceRecord record)
45 Trace(severity, traceCode, traceDescription, record, null);
48 internal static void Trace(TraceEventType severity, int traceCode, string traceDescription, TraceRecord record, Exception exception)
50 Fx.Assert(traceCodes.ContainsKey(traceCode),
51 string.Format(CultureInfo.InvariantCulture, "Unsupported trace code: Please add trace code 0x{0} to the dictionary TraceUtility.traceCodes in {1}",
52 traceCode.ToString("X", CultureInfo.InvariantCulture), typeof(TraceUtility)));
54 string msdnTraceCode = System.ServiceModel.Diagnostics.LegacyDiagnosticTrace.GenerateMsdnTraceCode("System.Runtime.Serialization", traceCodes[traceCode]);
56 string msdnTraceCode = "";
58 DiagnosticUtility.DiagnosticTrace.TraceEvent(severity, traceCode, msdnTraceCode, traceDescription, record, exception, null);