.Net Core 3.0依赖注入替换 Autofac
发布日期:2021-08-13 07:45:05 浏览次数:2 分类:技术文章

本文共 1412 字,大约阅读时间需要 4 分钟。

今天早上,喜庆的更新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.ConfigureContainer

public void ConfigureContainer(ContainerBuilder builder)        {            builder.RegisterType
().SingleInstance(); }

 

或者

services.AddAutofac(container=>            {                container.RegisterType
().SingleInstance(); });

 

大功告成~~~

转载于:https://www.cnblogs.com/NCoreCoder/p/11577584.html

转载地址:https://blog.csdn.net/weixin_30679823/article/details/101501507 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:AutoMapper 9.0的改造(续)
下一篇:.Net Core下基于Emit的打造AOP

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月11日 09时24分43秒