【发布时间】:2021-02-20 15:48:43
【问题描述】:
在 Asp.net 核心中,所有中间件都按照配置的顺序应用。但是,IStartupFilters 以与定义相反的顺序应用,如lines 92-95 in this 所示。 即使在应用程序开始时应用了 IStartupFilters,为什么需要颠倒顺序?
过滤器注册顺序示例,表明由于反转,asp.net 核心启动过滤器将最后运行。
【问题讨论】:
标签: asp.net-core asp.net-core-middleware
在 Asp.net 核心中,所有中间件都按照配置的顺序应用。但是,IStartupFilters 以与定义相反的顺序应用,如lines 92-95 in this 所示。 即使在应用程序开始时应用了 IStartupFilters,为什么需要颠倒顺序?
过滤器注册顺序示例,表明由于反转,asp.net 核心启动过滤器将最后运行。
【问题讨论】:
标签: asp.net-core asp.net-core-middleware
this GitHub issue 讨论了基本原理。
本质上就是保证IStartupFilters按照“先注册,先运行”的顺序运行,与中间件的执行顺序一致。除了一致性的好处之外,它还确保了默认框架注册的IStartupFilters 在用户注册的之前运行(这一点不再有效,因为默认的IStartupFilters 在版本 3.0 中已经全部删除)。
【讨论】: