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<Startup>();
});
(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;
}