在《Castle DynamicProxy基本用法》中介紹了如何将DP與Autofac內建使用,而 .NET Core有自己的依賴注入容器,在不依賴第三方容器的基礎上,如何實作動态代理就成了一個問題。
我們知道,要建立一個代理對象,需要簡單的三步:
建立Target
建立Interceptor
使用Target和Interceptor建立代理對象
.NET Core的依賴注入允許我們自定義ServiceDescriptor對象,而在ServiceDescriptor對象中,我們可以定義對象執行個體化的過程,這個過程叫做factory,通過自定義factory,我們可以類型的動态代理的建立。
代碼如下:
或者通過執行個體化ServiceDescriptor的方式進行注入:
通過這種方式,我們可以将動态代理與依賴注入結合起來。但是這樣的代碼缺少封裝,開發效率偏低,在使用過程中還需要對依賴注入、動态代理都有一定了解,為了解決這些問題,我們需要再次封裝。
在使用時需要注意,一定要先将Interceptor類注入到容器中。
2021年9月 北京、西安兩地,高薪誠聘 .NET工程師,請私信聯系!
如果認為此文對您有幫助,别忘了支援一下哦!
聲明:本部落格原創文字隻代表本人工作中在某一時間内總結的觀點或結論,與本人所在機關沒有直接利益關系。轉載時請在文章頁面明顯位置給出原文連結。