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