天天看點

如何在控制台中內建AutoFac,一文搞懂!

​​深度解析HashMap底層實作架構>>>

如何在控制台中內建AutoFac,一文搞懂!

​​

首先聲明,本文使用的.NetCore版本是3.0以上,有使用後感覺不一緻的同學請首先檢查自己的版本問題。

場景說明:

NetCore的很多輪子和案例是基于NetCoreWeb的,畢竟Web的應用場景比較多,是以網上的文章也會多一些。 在NetCoreWeb中有我們熟知的Startup.cs 檔案,其中有倆個重要的方法

相信大家看到這倆個方法會覺得倍感親切,通過幾個例子來讓大家回憶加快

如果要注入自定義的類,我們可以通過以下三種方式

上文的内容相信大家看一下也就都了解了。

那麼問題來了,有些應用我們不想弄web項目,太大太雜。我就想整一個控制台項目,用到什麼添加什麼。那這個時候我們如何利用依賴注入來實作和上文一樣的效果呢?

core版本3.0以上,在此重申一下。

其實我們仔細看NetCoreWeb的初始項目可以發現,在Program.cs下Main方法可以看到了個初始執行函數。

​<code>​Host.CreateDefaultBuilder​</code>​​其實就是在構造一個Host主機,自定義的内容使用StartUp中的倆個方法進行配置,最後​<code>​.Run​</code>​生成一個新的主機執行個體,就是一個服務 。

那麼在控制台下有沒有相似的方式 ,答案是有的。上代碼

new HostBuilder() Host.CreateDefaultBuilder() 這倆個方法是不是感覺是一樣的,隻是表現形式不一樣,沒錯,你猜對了。

通過上文的方式就可以在控制台項目中建立一個host主機,​<code>​ConfigureServices​</code>​也可以正常使用,也可以點出自己需要的内容,例如

第三方庫選擇Autofac,相信大家都沒有意見吧。:happy:

有些時候我們會有一些自己定制化的注入規則,例如按照某個特性标簽才注入,某些字首,某些字尾注入,使用接口方式注入。這些規則如果用自帶api實作就會很不舒服,所有使用Autofac。

如何将Autofac繼承Core控制台,我是真的找了好多文章才找到一個有用的,然後通過自己的實踐測試發現可靠,特此分享給大家。

通過文章的案例,相信大家對Autofac在控制台中的使用已經有了一個初步的了解,下面就是實踐了。看的多不如做的多,不要讓眼睛記住一,腦子還沒記住。

[Asp.net Core依賴注入(Autofac替換IOC容器)](

繼續閱讀