DocSpace-buildtools/common/ASC.Api.Core/Middleware/DisposeMiddleware.cs

30 lines
785 B
C#
Raw Normal View History

2019-08-15 12:04:42 +00:00
using System.Threading.Tasks;
2020-08-27 14:01:37 +00:00
using ASC.Common.Web;
2020-08-27 14:01:37 +00:00
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
namespace ASC.Api.Core.Middleware
{
public class DisposeMiddleware
{
private readonly RequestDelegate _next;
public DisposeMiddleware(RequestDelegate next) => _next = next;
public async Task Invoke(HttpContext context)
{
context.Response.RegisterForDispose(new DisposableHttpContext(context));
await _next.Invoke(context);
}
}
public static class DisposeMiddlewareExtensions
{
public static IApplicationBuilder UseDisposeMiddleware(this IApplicationBuilder builder) =>
builder.UseMiddleware<DisposeMiddleware>();
}
}