1 // -----------------------------------------------------------------------
\r
2 // Copyright (c) Microsoft Corporation. All rights reserved.
\r
3 // -----------------------------------------------------------------------
\r
8 using System.Diagnostics;
\r
9 using System.Collections.Generic;
\r
11 namespace System.ComponentModel.Composition.Diagnostics
\r
13 public partial class TraceContext : IDisposable
\r
15 private readonly SourceLevels _previousLevel = TraceSourceTraceWriter.Source.Switch.Level;
\r
16 private readonly TraceContextTraceListener _listener = new TraceContextTraceListener();
\r
18 public TraceContext(SourceLevels level)
\r
20 TraceSourceTraceWriter.Source.Switch.Level = level;
\r
21 TraceSourceTraceWriter.Source.Listeners.Add(_listener);
\r
24 [CLSCompliant(false)]
\r
25 public TraceEventDetails LastTraceEvent
\r
27 get { return _listener.TraceEvents.LastOrDefault(); }
\r
30 [CLSCompliant(false)]
\r
31 public IList<TraceEventDetails> TraceEvents
\r
33 get { return _listener.TraceEvents; }
\r
36 public void Dispose()
\r
38 TraceSourceTraceWriter.Source.Listeners.Remove(_listener);
\r
39 TraceSourceTraceWriter.Source.Switch.Level = _previousLevel;
\r