1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > .Net Core 3.0依赖注入替换 Autofac

.Net Core 3.0依赖注入替换 Autofac

时间:2018-09-25 05:41:26

相关推荐

.Net Core 3.0依赖注入替换 Autofac

今天早上,喜庆的更新VS,终于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();});

大功告成~~~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。