中間件是ASP.NET Core這個基礎提供的功能,而Filter是ASP.NET Core MVC中提供的功能。ASP.NET Core MVC是由MVC中間件提供的框架,而Filter屬于MVC中間件提供的功能。
區別
- 中間件可以處理所有的請求,而Filter只能處理對控制器的請求;中間件運行在一個更底層、更抽象的級別,因此在中間件中無法處理MVC中間件特有的概念。
- 中間件和Filter可以完成很多相似的功能。“未處理異常中間件”和“未處理異常Filter”;“請求限流中間件”和“請求限流Filter”的區別。
- 優先選擇使用中間件;但是如果這個組件只針對MVC或者需要調用一些MVC相關的類的時候,我們就只能選擇Filter。