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;
13 using System.ServiceModel.Diagnostics;
16 static class TraceUtility
18 static Dictionary<int, string> traceCodes = new Dictionary<int, string>(18)
20 { TraceCode.WriteObjectBegin, "WriteObjectBegin" },
21 { TraceCode.WriteObjectEnd, "WriteObjectEnd" },
22 { TraceCode.WriteObjectContentBegin, "WriteObjectContentBegin" },
23 { TraceCode.WriteObjectContentEnd, "WriteObjectContentEnd" },
24 { TraceCode.ReadObjectBegin, "ReadObjectBegin" },
25 { TraceCode.ReadObjectEnd, "ReadObjectEnd" },
26 { TraceCode.ElementIgnored, "ElementIgnored" },
27 { TraceCode.XsdExportBegin, "XsdExportBegin" },
28 { TraceCode.XsdExportEnd, "XsdExportEnd" },
29 { TraceCode.XsdImportBegin, "XsdImportBegin" },
30 { TraceCode.XsdImportEnd, "XsdImportEnd" },
31 { TraceCode.XsdExportError, "XsdExportError" },
32 { TraceCode.XsdImportError, "XsdImportError" },
33 { TraceCode.XsdExportAnnotationFailed, "XsdExportAnnotationFailed" },
34 { TraceCode.XsdImportAnnotationFailed, "XsdImportAnnotationFailed" },
35 { TraceCode.XsdExportDupItems, "XsdExportDupItems" },
36 { TraceCode.FactoryTypeNotFound, "FactoryTypeNotFound" },
37 { TraceCode.ObjectWithLargeDepth, "ObjectWithLargeDepth" },
40 internal static void Trace(TraceEventType severity, int traceCode, string traceDescription)
42 Trace(severity, traceCode, traceDescription, null);
45 internal static void Trace(TraceEventType severity, int traceCode, string traceDescription, TraceRecord record)
47 Trace(severity, traceCode, traceDescription, record, null);
50 internal static void Trace(TraceEventType severity, int traceCode, string traceDescription, TraceRecord record, Exception exception)
52 Fx.Assert(traceCodes.ContainsKey(traceCode),
53 string.Format(CultureInfo.InvariantCulture, "Unsupported trace code: Please add trace code 0x{0} to the dictionary TraceUtility.traceCodes in {1}",
54 traceCode.ToString("X", CultureInfo.InvariantCulture), typeof(TraceUtility)));
56 string msdnTraceCode = System.ServiceModel.Diagnostics.LegacyDiagnosticTrace.GenerateMsdnTraceCode("System.Runtime.Serialization", traceCodes[traceCode]);
58 string msdnTraceCode = "";
60 DiagnosticUtility.DiagnosticTrace.TraceEvent(severity, traceCode, msdnTraceCode, traceDescription, record, exception, null);