2021年4月5日 星期一

ASP.NET Core 3.1 Filters:Global 與 Attribute 執行順序

前篇介紹了 Filter 掛載 Attribute 的方式, 知道 attribute 的方式同樣需要註冊

型別;而實際專案中確實有可能同時出現,全域的與獨立掛載的 Filter ,然而

兩者的執行順序又是如何呢?其實答案很明顯,手癢紀錄一下


開始之前,再次提醒 filter pipeline 如下圖,而示範是使用 action filter


建立 MyGlobalActionFilterAttribute,此類別預計註冊為全域


建立 MyActionFilterAttribute,此類別預計使用 Attriute 掛載


掛載到 Controller Action 上,使用 ServiceFilter 


接著Startup.cs 註冊,故意將全域的留在後面註冊,並不影響最後執行順序 


執行,並觀察輸出



注意,若有設計建構式注入,建構式會先被執行,以下是參考程式碼




 

沒有留言:

張貼留言