您好,登錄后才能下訂單哦!
.net core中可以說是用了全新的IOC模板,定義在Microsoft.Extensions.DependencyInjection下。提供了一套標(biāo)準(zhǔn)的接口。并提供了默認(rèn)實(shí)現(xiàn)。并且大范圍使用著,處處都體現(xiàn)著IOC的設(shè)計(jì)思想。
Startup的ConfigureServices方法中,集中對服務(wù)進(jìn)行配置??梢钥吹侥J(rèn)的.net core mvc默認(rèn)項(xiàng)目已經(jīng)為我們注入了不少服務(wù)。看注釋也就懂了,也沒什么特別好解釋的(^_^)。
最后2行代碼是自定義配置的注入。需要Microsoft.Extensions.Options.ConfigurationExtensions package的支持
AddOptions 針對Ioptions<POCOModel>提供管理,緩存,配置變動(dòng)自動(dòng)支持服務(wù),即配置文件有改動(dòng)會(huì)自動(dòng)反應(yīng)在應(yīng)用程序中,且應(yīng)用程序不需要自動(dòng)重啟。不像以前的web.config.有任何改動(dòng)都會(huì)自動(dòng)重啟。
Configure<T>(IConfiguration).表示配置的內(nèi)容來自配置文件。
IndexSetting是新建的一個(gè)model,即配置項(xiàng)。
配置文件中的IndexSetting
目前.net core ioc有3種獲取service方式。
1.ctor注入。
2.action 參數(shù)注入
3.容器獲取方式
當(dāng)然,應(yīng)對一般情況,這種方式也許夠用了。but,現(xiàn)實(shí)顯然不是這樣的。通常我們需要更強(qiáng)大的ioc lib。目前官方推薦的更強(qiáng)大的ioc lib。也是業(yè)界大名鼎鼎的autofac。autofac的介紹園子里面一大把,并且寫的很詳細(xì),很好。就不多介紹了。
官方文檔:http://docs.autofac.org/en/latest/integration/aspnetcore.html
asp.net和asp.net core時(shí)代的區(qū)別主要有幾點(diǎn)。
1.Use InstancePerLifetimeScope instead of InstancePerRequest.
簡單來說就是生命周期的統(tǒng)一。
2.No more DependencyResolver.
沒有以前的DependencyResolver入口了
3.No manual controller registration.
不再需要注冊自己的controllerfactory了,也包括owin中的middleware。
需要使用它,當(dāng)然需要添加它
針對Startup的ConfigureServices方法做一些改造
使用任何第三方ioc,都需要返回IServiceProvider。替換系統(tǒng)的默認(rèn)IServiceProvider。否則不能生效。
然后創(chuàng)建autofac的build,一切照舊,我們就可以愉快的使用autofac啦。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。