2022-02-03 13:19:48 +00:00
|
|
|
|
namespace ASC.Api.Core.Middleware;
|
|
|
|
|
|
|
|
|
|
public class DisposeMiddleware
|
2019-08-12 12:52:55 +00:00
|
|
|
|
{
|
2022-02-03 13:19:48 +00:00
|
|
|
|
private readonly RequestDelegate _next;
|
2019-08-12 12:52:55 +00:00
|
|
|
|
|
2022-02-07 16:03:16 +00:00
|
|
|
|
public DisposeMiddleware(RequestDelegate next)
|
|
|
|
|
{
|
|
|
|
|
_next = next;
|
|
|
|
|
}
|
2019-08-12 12:52:55 +00:00
|
|
|
|
|
2022-02-03 13:19:48 +00:00
|
|
|
|
public async Task Invoke(HttpContext context)
|
|
|
|
|
{
|
|
|
|
|
context.Response.RegisterForDispose(new DisposableHttpContext(context));
|
2019-08-12 12:52:55 +00:00
|
|
|
|
|
2022-02-03 13:19:48 +00:00
|
|
|
|
await _next.Invoke(context);
|
2019-08-12 12:52:55 +00:00
|
|
|
|
}
|
2022-02-03 13:19:48 +00:00
|
|
|
|
}
|
2019-08-12 12:52:55 +00:00
|
|
|
|
|
2022-02-03 13:19:48 +00:00
|
|
|
|
public static class DisposeMiddlewareExtensions
|
|
|
|
|
{
|
2022-02-07 16:03:16 +00:00
|
|
|
|
public static IApplicationBuilder UseDisposeMiddleware(this IApplicationBuilder builder)
|
|
|
|
|
{
|
|
|
|
|
return builder.UseMiddleware<DisposeMiddleware>();
|
|
|
|
|
}
|
2022-02-03 13:08:15 +00:00
|
|
|
|
}
|