/// <summary>
        /// Creates an <see cref="IRequestTrace"/> instance.
        /// </summary>
        /// <param name="request">A <see cref="Request"/> instance.</param>
        /// <returns>An <see cref="IRequestTrace"/> instance.</returns>
        public IRequestTrace Create(Request request)
        {
            var requestTrace =
                new DefaultRequestTrace();

            var comparer = (StaticConfiguration.CaseSensitive) ?
                StringComparer.Ordinal :
                StringComparer.OrdinalIgnoreCase;

            requestTrace.Items =
                new Dictionary<string, object>(comparer);

            requestTrace.RequestData = request;

            requestTrace.TraceLog = (this.configuration.DisplayErrorTraces) ?
                (ITraceLog)new DefaultTraceLog() :
                (ITraceLog)new NullLog();

            return requestTrace;
        }
        /// <summary>
        /// Creates an <see cref="IRequestTrace"/> instance.
        /// </summary>
        /// <param name="request">A <see cref="Request"/> instance.</param>
        /// <returns>An <see cref="IRequestTrace"/> instance.</returns>
        public IRequestTrace Create(Request request)
        {
            var requestTrace =
                new DefaultRequestTrace();

            var comparer = (StaticConfiguration.CaseSensitive) ?
                           StringComparer.Ordinal :
                           StringComparer.OrdinalIgnoreCase;

            requestTrace.Items =
                new Dictionary <string, object>(comparer);

            requestTrace.RequestData = request;

            requestTrace.TraceLog = (this.configuration.DisplayErrorTraces) ?
                                    (ITraceLog) new DefaultTraceLog() :
                                    (ITraceLog) new NullLog();

            return(requestTrace);
        }