在 .NET Core 3 和 3.1 中设置 Autofac

Setup Autofac in .NET Core 3 and 3.1

来自official Autofac documentation for ASP.NET Core 3.0(我使用的是.NET Core 3.1),官方文档中的startup构造函数参数类型是IHostingEnvironment

public Startup(IHostingEnvironment env)
  {
    // In ASP.NET Core 3.0 `env` will be an IWebHostEnvironment, not IHostingEnvironment.
    var builder = new ConfigurationBuilder()
        .SetBasePath(env.ContentRootPath)
        .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
        .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
        .AddEnvironmentVariables();
    this.Configuration = builder.Build();
  }

而我的是 IConfiguration

 public Startup(IConfiguration configuration)
        {
            Configuration = configuration;

        } 

我如何在 .NET Core 3.1 中设置此方法?或者 Autofac 尚未发布 .NET Core 3.1 的文档?

在 .NET Core3.1 中设置 autofac 有两个步骤。

首先,你需要在下面写Program.cs。

Host.CreateDefaultBuilder(args)
    .UseServiceProviderFactory(new AutofacServiceProviderFactory())
    .ConfigureWebHostDefaults(webBuilder =>
    {
      webBuilder.UseStartup<Startup>();
    });

然后,在Startup.cs中创建一个新方法。

public void ConfigureContainer(ContainerBuilder builder)
{
    builder.RegisterAssemblyTypes(Assembly.Load("")).AsImplementedInterfaces();
}