国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【NetCore】03-依賴注入

這篇具有很好參考價值的文章主要介紹了【NetCore】03-依賴注入。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

依賴注入框架

1.為什么要是使用依賴注入框架

  • 管理類之間的依賴,幫助我們在構(gòu)建應(yīng)用時遵循設(shè)計原則,確保代碼的可維護性和可擴展性
  • 依賴注入框架提供了對象創(chuàng)建和生命周期管理的核心能力,各個組件相互協(xié)作,也是由依賴注入框架的能力來實現(xiàn)的

組件包

  • Microsoft.Extensions.DependencyInjection.Abstractions
  • Microsoft.Extensions.DependencyInjection

依賴注入框架核心類型
1.IServiceCollection --> 負責(zé)服務(wù)注冊
2.ServiceDescription --> 每個服務(wù)注冊時的信息
3.IServiceProvider --> 容器
4.IServiceScope --> 子容器生命周期

1.1 生命周期(ServiceLifeTime)

  • 單例 Singleton --> 在根容器生命周期內(nèi)都是單例
  • 作用于 Scoped --> 在子容器的生存周期內(nèi)使用的是同一對象,如果容器被釋放,則對象也被釋放
  • 瞬時(暫時) Transient --> 每一次從容器中獲取對象時,都能獲取到一個全新的對象

1.2 服務(wù)注冊方式

1.servcies.AddScope<接口類型,實現(xiàn)>();

2.services.AddScope<接口類型>(new Tdata()); ? 花式注冊

3.services.AddScope<接口類型>(serviceProvider=>{return new 實現(xiàn)()}); ? 工廠模式

4.services.TryAddSingleton<接口類型,實現(xiàn)>(); ? 嘗試注冊,已經(jīng)注冊過的就不會再注冊了,服務(wù)類型是接口類型,如果已經(jīng)存在相同接口類型,則不注冊

5.services.TryAddEnumerable(ServiceDescriptor.Singleton<接口類型,實現(xiàn)>()); ? 相同類型的服務(wù)接口,如果實現(xiàn)是不同的,則可以注冊,如果實現(xiàn)類是相同的就不注冊

1.3 服務(wù)移除、替換

  • 移除:services.RemoveAll<接口類型>(); ? 移除所有的當(dāng)前注冊接口類型的服務(wù)
  • 替換: services.Replace(ServiceDescriptor.Singleton<接口類型,實現(xiàn)>);

1.4 注冊泛型模板

  • services.AddSingleton(typeof(IGenericService<>),typeof(GenericService<>))
// 泛型類的定義

public interface IGenericService<T>
{
}

public class GenericService<T>:IGenericService<T>
{
	public T Data  {get; private set;}
	public GenericService(T data)
	{
		this.Data = data;
	}
}

服務(wù)注冊時,如果是大部分接口都需要使用時,采用構(gòu)造函數(shù)注入的方式,
如果僅個別方法使用,采用[FromServices]方式注入
文章來源地址http://www.zghlxwxcb.cn/news/detail-605502.html

到了這里,關(guān)于【NetCore】03-依賴注入的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 基于.NetCore開發(fā)博客項目 StarBlog - (28) 開發(fā)友情鏈接相關(guān)接口

    基于.NetCore開發(fā)博客項目 StarBlog - (28) 開發(fā)友情鏈接相關(guān)接口

    之前介紹的友情鏈接功能,只實現(xiàn)了友情鏈接的展示和管理接口。 還缺失友情鏈接申請、審核管理、通知,現(xiàn)在把這塊功能補全。 Model 什么的之前那篇文章都有,本文直接補全邏輯代碼~ 詳見: 基于.NetCore開發(fā)博客項目 StarBlog - (13) 加入友情鏈接功能 友情鏈接申請頁面 實現(xiàn)一

    2024年02月06日
    瀏覽(26)
  • 基于.NetCore開發(fā)博客項目 StarBlog - (27) 使用JWT保護接口

    基于.NetCore開發(fā)博客項目 StarBlog - (27) 使用JWT保護接口

    這是StarBlog系列在2023年的第二篇更新?? 這幾個月都在忙,更新變得很不勤快,但是拖著不更新我的心里更慌,很久沒寫,要開頭就變得很難?? 說回正題,之前的文章里,我們已經(jīng)把博客關(guān)鍵的接口都開發(fā)完成了,但還少了一個最關(guān)鍵的「認證授權(quán)」,少了這東西,網(wǎng)站就跟

    2024年02月02日
    瀏覽(43)
  • 銀河麒麟OS C# .netcore桌面應(yīng)用開發(fā)環(huán)境搭建筆記

    一、安裝.netcore 參考在 Ubuntu 上安裝 .NET - .NET | Microsoft Docs。 1、x64平臺:可直接用包管理安裝。(僅在 x64 體系結(jié)構(gòu)上支持包管理器安裝。) 2、arm等其他平臺:通過一些其他方式(例如使用 Snap、安裝程序腳本或通過手動二進制安裝)安裝 .NET。 a)手動安裝: 先創(chuàng)建并進入

    2024年02月07日
    瀏覽(20)
  • .Net 6/NetCore3.1 Vue Element Uniapp前后端分離低代碼快速開發(fā)框架

    .Net 6/NetCore3.1 Vue Element Uniapp前后端分離低代碼快速開發(fā)框架

    這是一個能提高開發(fā)效率的開發(fā)框架,全自動生成PC與移動端(uniapp)代碼;支持移動ios/android/h5/微信小程序。 1、前后端分離項目 2、純后端項目 3、移動端開發(fā)uni-app(IOS、Android、H5、微信小程序) 4、內(nèi)容管理系統(tǒng) 1、代碼生成器 2、一對一與一對多代碼生成 3、全自動導(dǎo)入導(dǎo)出

    2024年02月10日
    瀏覽(24)
  • 楊中科 .NETCORE 異步編程

    楊中科 .NETCORE 異步編程

    異步點餐的優(yōu)點:能同時服務(wù) 多個客人 異步點餐一定會提升 單個客戶 點餐速度嗎? 答案理所當(dāng)然:不能 圖片美化服務(wù)例子服務(wù)器能夠同時服務(wù)的請求數(shù)量有限 處理完成后再回調(diào),異步回調(diào)通知的。就可以同時處理更多的請求 傳統(tǒng)多線程開發(fā)太麻煩。C#; async、awai

    2024年01月15日
    瀏覽(72)
  • 【NetCore】09-中間件

    【NetCore】09-中間件

    1.1 中間件工作原理 1.2 中間件核心對象 IApplicationBuilder RequestDelegate IApplicationBuilder可以通過委托方式注冊中間件,委托的入?yún)⒁彩俏校@就可以將這些委托注冊成一個鏈,如上圖所示;最終會調(diào)用Builder方法返回一個委托,這個委托就是把所有的中間件串起來后合并成的一個

    2024年02月12日
    瀏覽(22)
  • IIS 部署.NetCore

    IIS 部署.NetCore

    https://dotnet.microsoft.com/download/dotnet/3.1/runtime Windows 安裝,選擇desktop apps 選擇好版本后,點擊去,找到Core運行時的支持:IIS runtime support,里面的Hosting Bundle(托管捆綁包)下載 設(shè)置無托管 參考地址 1、cmd輸入命令,提示無法啟動此程序,因為計算機中丟失 api-ms-win-crt-runtime-l

    2024年02月12日
    瀏覽(23)
  • .NetCore調(diào)用Soap接口

    添加服務(wù)引用的方式無法滿足我請求Soap接口,所以寫了個Soap幫助類,使用HttpClient的方式請求接口。 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 一條 SOAP 消息就是一個普通的 XML 文檔,包含下列元素: 必需的 Envelope 元素,可把此 XML 文檔標識為一條 SOAP 消息 可選的

    2024年02月04日
    瀏覽(15)
  • NetCore部署微服務(wù)(三)

    NetCore部署微服務(wù)(三)

    接上文,服務(wù)端部署完成之后,同樣我們也需要修改一下客戶端代碼 1.1 服務(wù)發(fā)現(xiàn) 在客戶端代碼中使用Nuget安裝consul包 ?修改配置文件,我們首先需要把consul的請求地址配置在配置文件中 修改control方法 ?OK,通過如下修改,我們發(fā)現(xiàn),我們不需要再在代碼中配置請求地址,請

    2024年02月02日
    瀏覽(19)
  • .netcore發(fā)布獨立版部署

    .netcore發(fā)布獨立版部署

    .NetCore 在發(fā)布獨立版時會打包獨立環(huán)境,就算服務(wù)沒有安裝環(huán)境也能運行,這就是.NetCore跨平臺的特性之一。 按照微軟的傳統(tǒng)配套,c#開發(fā)的項目一般都是發(fā)布打包程序部署在iis,但是.netcore 跨平臺的,就是說當(dāng)發(fā)布獨立版時可以跨平臺部署。 在發(fā)布獨立版是,會把項目中的

    2024年02月11日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包