.Net Core IOC DI(依賴注入)
原文鏈接:http://www.rzrgm.cn/ysmc/p/16012269.html
暫時(shí)(Transient)
- 暫時(shí)生存期服務(wù)是每次從服務(wù)容器進(jìn)行請(qǐng)求時(shí)創(chuàng)建的。 這種生存期適合輕量級(jí)、 無狀態(tài)的服務(wù)。
作用域(Scoped)
- 對(duì)于 Web 應(yīng)用,指定了作用域的生存期指明了每個(gè)客戶端請(qǐng)求(連接)創(chuàng)建一次服務(wù)。
- 在處理請(qǐng)求的應(yīng)用中,在請(qǐng)求結(jié)束時(shí)會(huì)釋放有作用域的服務(wù)。
- 使用 Entity Framework Core 時(shí),默認(rèn)情況下使用范圍內(nèi)生存期來注冊(cè) DbContext 類型。
單例(Singleton)
- 來自依賴關(guān)系注入容器的服務(wù)實(shí)現(xiàn)的每一個(gè)后續(xù)請(qǐng)求都使用同一個(gè)實(shí)例。 如果應(yīng)用需要單一實(shí)例行為,則允許服務(wù)容器管理服務(wù)的生存期。
- 單一實(shí)例服務(wù)必須是線程安全的,并且通常在無狀態(tài)服務(wù)中使用。
- 注意:不要從單一實(shí)例解析限定范圍的服務(wù),并小心不要間接地這樣做,例如通過暫時(shí)性服務(wù)。 當(dāng)處理后續(xù)請(qǐng)求時(shí),它可能會(huì)導(dǎo)致服務(wù)處于不正確的狀態(tài)。最直接的影響是限定范圍的服務(wù)無法釋放,間接成了單例模式。一定要使用,就自己創(chuàng)建,并且顯式管理它的生命周期。
本文來自博客園,作者:一事冇誠(chéng),轉(zhuǎn)載請(qǐng)注明原文鏈接:http://www.rzrgm.cn/ysmc/p/16012269.html

浙公網(wǎng)安備 33010602011771號(hào)