/// <summary>
        /// Full constructor.
        /// </summary>
        /// <param name="innerFilter">The next handler in the pipeline to pass requests through.</param>
        /// <param name="requestCondition">A <see cref="IWebHttpRequestCondition"/> that controls whether any individual request is compressed or not. If null, all requests are compressed.</param>
        public CompressedRequestFilter(IHttpFilter innerFilter, IWebHttpRequestCondition requestCondition)
        {
            if (innerFilter == null)
            {
                throw new ArgumentNullException(nameof(innerFilter));
            }

            _InnerFilter      = innerFilter;
            _RequestCondition = requestCondition;
        }
        /// <summary>
        /// Constructs a <see cref="DynamicRequestHeaderFilter"/>.
        /// </summary>
        /// <param name="dynamicHeaders">An enumerable set of <see cref="KeyValuePair{TKey, TValue}"/>s where each key is the name of a header and each value is a string returning function for the header value.</param>
        /// <param name="applyHeadersCondition">A <see cref="IWebHttpRequestCondition"/> implementation used to determine if the dynamic headers should be applied. If null, headers are applied to all requests.</param>
        /// <param name="innerFilter">The next filter in the pipeline to pass requests to after the dynamic headers are added.</param>
        public DynamicRequestHeaderFilter(IEnumerable <KeyValuePair <string, Func <string> > > dynamicHeaders, IWebHttpRequestCondition applyHeadersCondition, Windows.Web.Http.Filters.IHttpFilter innerFilter)
        {
            if (dynamicHeaders == null)
            {
                throw new ArgumentNullException(nameof(dynamicHeaders));
            }
            if (innerFilter == null)
            {
                throw new ArgumentNullException(nameof(innerFilter));
            }

            _InnerFilter           = innerFilter;
            _ApplyHeadersCondition = applyHeadersCondition;
            _DynamicHeaders        = dynamicHeaders;
        }