.Net Core依賴注入和服務注冊


依賴注入和服務注冊作為.Net Core最核心的模塊  當然需要記錄一下 個人學習和理解

1.依賴注入 DI

為什么需要DI,目的是什么? 

之所以需要DI,是因為我們需要實現控制反轉 (IOC) 。 (DI) 軟件設計模式,這是一種在類及其依賴關系之間實現控制反轉 (IoC) 的技術.他是作為實現IOC的框架和方式

為什么需要控制反轉(IOC),目的是什么?

為了項目的高度可維護,核心是為了項目的解耦合     

之前我們使用一個對象的時候,需要一步步的去new一個對象,如:我們獲取西湖這個對象 就去new一個 中國-->浙江省-->杭州市-->西湖。 那么這個西湖就依賴於杭州市依賴於浙江省依賴於中國。。而IOC的目的就是我可以直接獲取西湖這個對象,也不用去new它,也不用去管它到底跟誰有依賴關系,繼承哪個父類,直接拿到這個對象,所有的依賴,都會被IOC容器幫我在內部生成的時候就已經實例好了。

    微軟官方文檔例子

1首先聲明一個Model類,2接着增加一個類的實體上下文對象,3然后去服務注冊這個上下文,4最后就是調用了 對應以下四張圖片

 

 

 

 

 

 

 

 

 

 

 

 

2.服務注冊

服務注冊是項目框架的生成和實現的業務需求的實現。(有內置的 和 自定義的)

服務注冊是在Startup類的ConfigureServices下的。項目在創建(Build)的時候就執行

內置的服務,比如建立一個MVC項目 或者一個WebApi項目。那么在生成項目框架的時候,DIE自動為我們在ConfigureServices里添加了像services.AddControllers()控制器 services.AddRazorPages() 視圖模板 services.AddMvc()等等,這些都是內置的服務,作為的項目的架構。。

自定義的服務:注冊自定義服務的時候必須選擇一個生存周期(.Net Core有內置的三種生命周期 瞬時、單例、作用域。內置的服務其實也有聲明周期,只是已經配置封裝好了,所以看上去是一個services.AddMvc()等等 )   

實例:如支付服務 Pay 有兩種方式:支付寶、微信

1首先創建一個服務接口pay,兩種實現方式(微信 支付寶), 2選擇生命周期方式,注冊服務,3具體的服務調用  對應以下圖

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM