AOP的本質是方法攔截(將針對目標方法調用劫持下來,進而執行執行的操作),置於方法攔截的實現方案,不外乎兩種代碼注入類型,即編譯時的靜態注入和運行時的動態注入,本篇文章列出了幾種常用的動態注入方案。這 ...
AOP的本質是方法攔截(將針對目標方法調用劫持下來,進而執行執行的操作),置於方法攔截的實現方案,不外乎兩種代碼注入類型,即編譯時的靜態注入和運行時的動態注入,本篇文章列出了幾種常用的動態注入方案。這 ...
.NET Core正式發布之后,我為.NET Core度身定制的AOP框架Dora.Interception也升級到3.0。這個版本除了升級底層類庫(.NET Standard 2.1)之外,我還對它 ...
多年從事框架設計開發使我有了一種強迫症,那就是見不得一個應用里頻繁地出現重復的代碼。之前經常Review別人的代碼,一看到這樣的程序,我就會想如何將這些重復的代碼寫在一個地方,然后采用“注入”的方式將 ...
ASP.NET Core具有一個以ServiceCollection和ServiceProvider為核心的依賴注入框架,雖然這只是一個很輕量級的框架,但是在大部分情況下能夠滿足我們的需要。不過我覺得 ...
注冊攔截器旨在解決如何將攔截器應用到目標方法的問題。在我看來,針對攔截器的注冊應該是明確而精准的,也就是我們提供的注冊方式應該讓攔截器准確地應用到期望的目標方法上,不能多也不能少。如果注冊的方式過於模 ...
和所有的AOP框架一樣,我們必須將正常的方法調用進行攔截,才能將應用到當前方法上的所有攔截器納入當前調用鏈。Dora.Interception采用IL Eimit的方式實現對方法調用的攔截,接下來我們 ...
按照單一職責的原則,攔截器只負責需要的攔截操作的執行,至於它采用何種方式應用到目標方法上,以及它在整個攔截器管道中的位置則屬於“攔截器注冊”的范疇。Dora.Interception提供了幾種典型的注 ...
對於所有的AOP框架來說,多個攔截器最終會應用到某個方法上。這些攔截器按照指定的順序構成一個管道,管道的另一端就是針對目標方法的調用。從設計角度來將,攔截器和中間件本質是一樣的,那么我們可以按照類似的 ...
在前面我們學習到的是Unity依賴注入(DI)與統一容器來松散耦合,這個設計已經對我們系統帶來了很多的好處。但是我們還會想嘗試和遵循單一職責,開放封閉原則。比如我們不應該在我們的B ...