ASP.NET Core3.1中如何使用Autofac

ASP.NET Core3.1中如何使用Autofac

(1)添加Autofac.Extensions.DependencyInjection引用

 

(2)在Program.cs中添加工厂服务者

 public static IHostBuilder CreateHostBuilder(string[] args) =>

            Host.CreateDefaultBuilder(args)

            .UseServiceProviderFactory(new AutofacServiceProviderFactory()) //工厂服务者

             .ConfigureWebHostDefaults(webBuilder =>

                {

                    webBuilder.UseStartup();

                });

(3)在Startup.cs中添加如下方法

public void ConfigureContainer(ContainerBuilder builder)
{

            //服务层程序集命名空间

            Assembly service = Assembly.Load("AutofacExamples.Service");

             //服务接口层程序集命名空间

            Assembly iservice= Assembly.Load("AutofacExamples.IService");

            //自动注入

            builder.RegisterAssemblyTypes(service,iservice)

                .Where(t => t.Name.EndsWith("Service"))

                .AsImplementedInterfaces();

}

(4)最后就可以在构造函数中获取对象了

private readonly IPrint _print;

public WeatherForecastController(IPrint print)

{            

this._print = print;

}

 

你可能感兴趣的:(ASP.NET,Core)