[bcl] Don't build not installed mobile assemblies
[mono.git] / mcs / class / referencesource / System.Runtime.Serialization / System / Runtime / Serialization / Diagnostics / TraceUtility.cs
1 //-----------------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation.  All rights reserved.
3 //-----------------------------------------------------------------------------
4
5 namespace System.Runtime.Serialization.Diagnostics
6 {
7     using System.Collections.Generic;
8     using System.Diagnostics;
9     using System.Globalization;
10     using System.Runtime;
11     using System.Runtime.Diagnostics;
12 #if !MONO
13     using System.ServiceModel.Diagnostics;
14 #endif
15
16     static class TraceUtility
17     {
18         static Dictionary<int, string> traceCodes = new Dictionary<int, string>(18)
19         {
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" },
38         };
39
40         internal static void Trace(TraceEventType severity, int traceCode, string traceDescription)
41         {
42             Trace(severity, traceCode, traceDescription, null);
43         }
44
45         internal static void Trace(TraceEventType severity, int traceCode, string traceDescription, TraceRecord record)
46         {
47             Trace(severity, traceCode, traceDescription, record, null);
48         }
49
50         internal static void Trace(TraceEventType severity, int traceCode, string traceDescription, TraceRecord record, Exception exception)
51         {
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)));
55 #if !MONO
56             string msdnTraceCode = System.ServiceModel.Diagnostics.LegacyDiagnosticTrace.GenerateMsdnTraceCode("System.Runtime.Serialization", traceCodes[traceCode]);
57 #else
58             string msdnTraceCode = "";
59 #endif
60             DiagnosticUtility.DiagnosticTrace.TraceEvent(severity, traceCode, msdnTraceCode, traceDescription, record, exception, null);
61         }
62     }
63 }