public void Dispose()
        {
            if (SdkTracingInterceptor != null)
            {
                ServiceClientTracing.RemoveTracingInterceptor(SdkTracingInterceptor);
            }

            if (TextListener != null)
            {
                if (Trace.Listeners.Contains(TextListener))
                {
                    Trace.Listeners.Remove(TextListener);
                }

                TextListener.Dispose();
            }

            if (TraceStream != null)
            {
                TraceStream.Dispose();
            }

            Trace.AutoFlush = PreviousAutoFlush;
            AdalTrace.TraceSource.Switch.Level = PreviousAdalSourceLevel;
            AdalTrace.LegacyTraceSwitch.Level  = PreviousAdalTraceLevel;
        }