咱們都知道,.net core天生自帶IOC容器,可是他的功能其實並不強大,並且有坑:在構造注入的時候,他默認找參數最少的構造函數。ide
這裏,我講解如何使用Autofac去接管IOC,至於爲何要選Autofac,這個其實我也是隨大衆,不事後面我講到關於使用Autofac實現AOP的時候,或許你能發現他的好處函數
首先,在類的內部定義一個新的方法ui
public void ConfigureContainer(ContainerBuilder builder)
{
// 在這裏添加服務註冊
builder.RegisterType<ProductRepository>().As<IProductRepository>();//註冊
}spa
在這個方法裏,完成服務註冊。對於服務註冊這塊,關於Autofac的API若是有須要更多的瞭解的話,能夠查閱Autofac指南.net
UseServiceProviderFactory(new AutofacServiceProviderFactory())//使用AutoFac作IOC和AOPblog
對於使用IOC,雖然Autofac有多種騷姿式,可是我這裏仍是推薦使用構造注入,若是要問爲何,其實關鍵在於,你不用在每一個類庫中都去拉包,處處都拉包的話,項目就會對組件產生依賴,產生必定的耦合。get