ExceptionMiddleware.cs 735 B

1234567891011121314151617181920212223242526272829
  1. using Newtonsoft.Json;
  2. namespace EVCB_OCPP.DBAPI.Middleware;
  3. public class ExceptionMiddleware
  4. {
  5. private readonly RequestDelegate _next;
  6. private readonly ILogger<ExceptionMiddleware> logger;
  7. public ExceptionMiddleware(RequestDelegate next, ILogger<ExceptionMiddleware> logger)
  8. {
  9. _next = next;
  10. this.logger = logger;
  11. }
  12. public async Task Invoke(HttpContext context)
  13. {
  14. try
  15. {
  16. await _next(context);
  17. }
  18. catch (Exception ex)
  19. {
  20. var resultString = JsonConvert.SerializeObject(ex);
  21. logger.LogError(resultString);
  22. await context.Response.WriteAsync(resultString);
  23. }
  24. }
  25. }