IStartupFilter
使用IStartupFilter
:
- 再应用的中间件管道的开头或末尾配置中间件,而无需显式调用
Use{Middleware}
。使用IStartupFilter
在不显式注册默认中间件的情况下将默认值添加到管道的开头。 - 创建
Configure
方法的管道。IStartupFilter.Configure
可以将中间件设置为在库添加的中间件之前或之后运行。
每个 IStartupFilter
可以在请求管道中添加一个或多个中间件。 筛选器按照添加到服务容器的顺序调用。 筛选器可在将控件传递给下一个筛选器之前或之后添加中间件,从而附加到应用管道的开头或末尾。
下面的示例演示如何使用
IStartupFilter
注册中间件。RequestSetOptionsMiddleware
中间件从查询字符串参数中设置选项值:
1 | public class RequestSetOptionsMiddleware |
1 | public class RequestSetOptionsStartupFilter : IStartupFilter |
1 | var builder = WebApplication.CreateBuilder(args); |
中间件执行顺序由 IStartupFilter
注册顺序设置:
- 多个 IStartupFilter 实现可能与相同的对象进行交互。 如果顺序很重要,请将它们的 IStartupFilter 服务注册进行排序,以匹配其中间件应有的运行顺序。
- 库可能添加包含一个或多个 IStartupFilter 实现的中间件,这些实现在向 IStartupFilter 注册的其他应用中间件之前或之后运行。 若要在库的 IStartupFilter 添加的中间件之前调用 IStartupFilter 中间件,请执行以下操作:
- 在库添加到服务容器之前定位服务注册。
- 要在此后调用,请在添加库之后定位服务注册。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 生活中的tree!