我們都知道,.net core天生自帶IOC容器,但是他的功能其實并不強(qiáng)大,而且有坑:在構(gòu)造注入的時候,他默認(rèn)找參數(shù)最少的構(gòu)造函數(shù)。 這里,我講解如何使用Autofac去接管IOC,至于為什么要選Autofac,這個其實我也是隨大眾,不過后面我講到關(guān)于使用Autofac實現(xiàn)AOP的時候,或許你能發(fā)現(xiàn)他的好處 第一步,引包
第二步,修改startup.cs文件首先,在類的內(nèi)部定義一個新的方法
1 public void ConfigureContainer(ContainerBuilder builder) 2 { 3 // 在這里添加服務(wù)注冊 4 //builder.RegisterType<ProductRepository> ().As<IProductRepository>();//注冊 5 } 在這個方法里,完成服務(wù)注冊。對于服務(wù)注冊這塊,關(guān)于Autofac的API如果有需要更多的了解的話,可以查閱Autofac指南
第三步,修改Program.cs文件.UseServiceProviderFactory(new AutofacServiceProviderFactory())//使用AutoFac做IOC和AOP 第四步,正式使用對于使用IOC,雖然Autofac有多種騷姿勢,但是我這里還是推薦使用構(gòu)造注入,如果要問為什么,其實關(guān)鍵在于,你不用在每個類庫中都去拉包,到處都拉包的話,項目就會對組件產(chǎn)生依賴,產(chǎn)生一定的耦合。
|
|