下面的不要看,啥也不是:
控制反轉(ioc):不需要你乙個個的去new class,
而是只需要你在服務中注入服務(交給容器去建立)
依賴注入(di):
容器建立好後,再到你使用的時候,從容器把服務拿出來用的過程。
這個過程包含:屬性注入,建構函式注入
當你使用ioc,程式啟動的時候,這裡是有2個過程: 1:startup裡,專案要用的服務注入進來:services.addtransient<itestservices, testservicetemp>();1.1:插一句,這裡在請求的時候,先是去的testservicestemp這個類的建構函式;走到下面的第二步的時候,啥都已經宣告好了ok了
2:你傳送請求的時候,在構造的時候,把你注入到容器中的服務拿過來處理邏輯,這就夠了
那就再來說說三個生命週期:
no1:singleton "單個的,單一序列;單例模式
"
//services.addsingleton();
//每次呼叫testservicetemp,都是同乙個testservicetemp例項
//只要這個程式跑起來,這個例項就這乙個,不會建立新的例項
no2:transient(短暫的;轉瞬即逝的)
//這裡每次呼叫testservicetemp,都是新建立乙個testservicetemp例項
//不管什麼作用域啥的,每次請求都是會構造乙個新的例項
//例項的hashcode是不一樣的no3:scoped(範圍,作用域)
services.addscoped
();
//這裡每次呼叫testservicetemp,都是新建立乙個testservicetemp例項
//但是要是在同一作用域內去請求這兩個services的hashcode是一樣的
我感覺scope這個用的不多
注意:下面的_services 和tesrvices是兩種注入方式
[route(
"api/[controller]")]
[apicontroller]
public
class
testcontroller : controllerbase
//public tupleget([fromservices]itestservices tservices)
}
CopyOnWrite容器理解
什麼是copyonwrite容器 copyonwrite容器即寫時複製的容器。通俗的理解是當我們往乙個容器新增元素的時候,不直接往當前容器新增,而是先將當前容器進行copy,複製出乙個新的容器,然後新的容器裡新增元素,新增完元素之後,再將原容器的引用指向新的容器。這樣做的好處是我們可以對copyon...
C 容器vector 理解
通過設定一些模版類,stl容器對最常用的資料結構提供了支援,這些模板的引數允許我們指定容器中元素的資料型別,可以將我們許多重複而乏味的工作簡化。與string 類一樣vector 類是隨標準c 引入的標準庫的一部,為了使用vector 我們必須包含相關的標頭檔案。向量 vector 連續儲存的元素 ...
C STL容器的理解
1.容器 資料結構 演算法。相當於是為複雜的資料設計一種專門用於存放該資料的東西。用於開發中傳遞複雜的資料。2.模板函式只能寫在標頭檔案中,不能單獨宣告。3.stl容器分為三類 1 順序容器類 vector 陣列。查詢快,插入慢。加入的資料與資料大小有關 操作 empty 返回bool型,表示vec...