/// <inheritdoc/>
        protected override void Invoke(HttpContext context, RequestDelegate next)
        {
            var statusCodeFeature = new StatusCodePagesFeature();

            context.Features.Set(typeof(IStatusCodePagesFeature), statusCodeFeature);

            next(context);

            statusCodeFeature = (StatusCodePagesFeature)context.Features.Get(typeof(IStatusCodePagesFeature));
            if (!statusCodeFeature.Enabled)
            {
                // Check if the feature is still available because other middleware could
                // have disabled the feature to prevent HTML status code responses from showing up.
                return;
            }

            if (context.Response.StatusCode < 400 ||
                context.Response.StatusCode >= 600 ||
                context.Response.ContentLength > 0 ||
                !string.IsNullOrEmpty(context.Response.ContentType))
            {
                return;
            }

            _options.Handle(context);
        }
        protected override void Invoke(HttpContext context, RequestDelegate next)
        {
            next(context);

            if (context.Response.StatusCode < 400 ||
                context.Response.StatusCode >= 600 ||
                context.Response.ContentLength > 0 ||
                !string.IsNullOrEmpty(context.Response.ContentType))
            {
                return;
            }

            _options.Handle(context);
        }