.Net Core 3.0依赖注入替换 Autofac
今天早上,喜慶的更新VS2019,終于3.0正式版了呀~
有小伙伴問了一句Autofac怎么接入,因為Startup.ConfigureServices不能再把返回值改成IServiceProvider了,原來的替換依賴注入容器就不可行了,我隨口說了一下Host上面.UseServiceProviderFactory
本以為就這么簡單,他問我要個例子,自己折騰了一下,發現事情沒有這么簡單
.UseServiceProviderFactory<TContainer>要搭配Startup里面寫一個ConfigureContainer(TContainer builder)
Autofac官方的IServiceCollection.AddAutofac內部實現其實是一個單例的容器注入了IServiceProviderFactory<ContainerBuilder>
?但是不在UseServiceProviderFactory<TContainer>里面配置的話,就只能
services.AddAutofac(container=>{});而且不能有ConfigureContainer(ContainerBuilder builder),要不然會提示
?
?
比如我們有個MyClass
public class MyClass{public void Hello(){Console.WriteLine("Hello");}}我們配置一下
Host
public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).UseServiceProviderFactory(new AutofacServiceProviderFactory()) //增加.ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();});然后
Startup.ConfigureContainer
public void ConfigureContainer(ContainerBuilder builder){builder.RegisterType<MyClass>().SingleInstance();}?
或者
services.AddAutofac(container=>{container.RegisterType<MyClass>().SingleInstance();});?
大功告成~~~
轉載于:https://www.cnblogs.com/NCoreCoder/p/11577584.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的.Net Core 3.0依赖注入替换 Autofac的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑知识:新电脑数据迁移解决方案,看完你
- 下一篇: 【Python】基于Python的百度迁