.netcore使用autofac

.netcore3.1使用autofac

 (.netcore中本身已经实现了IOC容器,其实没有必要替换成autofac。如果非常习惯autofac,替换也是无可厚非的。)

第一步、在项目中引入Autofac和Autofac.Extensions.DependencyInjection

 

第二步、修改program.cs

   public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                })
            .UseServiceProviderFactory(new AutofacServiceProviderFactory());

 

第三步、在startup.cs中实现方法

 public void ConfigureContainer(ContainerBuilder builder)
        {

            #region 注入业务服务(此处使用反射注入)
            Assembly assembly = Assembly.Load("Qingy.DotNetCoreStudy.CustomerServiceService");
            List<Type> types = assembly.GetTypes().Where(u => u.IsClass && !u.IsAbstract && !u.IsGenericType
            && u.GetInterfaces().Any(p => p == typeof(ICustomerServicerSerice))
            ).ToList();
            builder.RegisterTypes(types.ToArray()).InstancePerLifetimeScope();  //注入,并声明生命周期
            #endregion 


        }

 

测试

posted on 2020-05-09 00:45  john_yong  阅读(645)  评论(0编辑  收藏  举报

导航