2
0

ApplicationBuilderExtensions.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using FastGithub.HttpServer;
  2. using Microsoft.AspNetCore.Builder;
  3. using Microsoft.Extensions.DependencyInjection;
  4. namespace FastGithub
  5. {
  6. /// <summary>
  7. /// ApplicationBuilder扩展
  8. /// </summary>
  9. public static class ApplicationBuilderExtensions
  10. {
  11. /// <summary>
  12. /// 使用http代理中间件
  13. /// </summary>
  14. /// <param name="app"></param>
  15. /// <returns></returns>
  16. public static IApplicationBuilder UseHttpProxy(this IApplicationBuilder app)
  17. {
  18. var middleware = app.ApplicationServices.GetRequiredService<HttpProxyMiddleware>();
  19. return app.Use(next => context => middleware.InvokeAsync(context));
  20. }
  21. /// <summary>
  22. /// 使用请求日志中间件
  23. /// </summary>
  24. /// <param name="app"></param>
  25. /// <returns></returns>
  26. public static IApplicationBuilder UseRequestLogging(this IApplicationBuilder app)
  27. {
  28. var middleware = app.ApplicationServices.GetRequiredService<RequestLoggingMiddleware>();
  29. return app.Use(next => context => middleware.InvokeAsync(context, next));
  30. }
  31. /// <summary>
  32. /// 使用反向代理中间件
  33. /// </summary>
  34. /// <param name="app"></param>
  35. /// <returns></returns>
  36. public static IApplicationBuilder UseHttpReverseProxy(this IApplicationBuilder app)
  37. {
  38. var middleware = app.ApplicationServices.GetRequiredService<HttpReverseProxyMiddleware>();
  39. return app.Use(next => context => middleware.InvokeAsync(context, next));
  40. }
  41. }
  42. }