如何将Autofac与Asp.net Core 2.2集成

时间:2019-04-04 07:11:00

标签: c# asp.net-core dependency-injection .net-core autofac

我在以下位置提供了指南:https://autofac.readthedocs.io/en/latest/integration/aspnetcore.html

在最后一步,它显示:

use App\Message

但是,Asp Net core 2.2的最新版本中,函数ConfigureServices(IServiceCollection services)返回void

MessagePosted

如何根据最新更改重构代码?

1 个答案:

答案 0 :(得分:2)

在您的解决方案中,您在ConfigureServices方法中使用了void返回类型:

public void ConfigureServices(IServiceCollection services)

实际上,您可以设置并返回IServiceProvider

public class Startup 
{
  public IContainer Container { get; private set; }

  // ...

  public IServiceProvider ConfigureServices(IServiceCollection services)
  {
    // create new container builder
    var containerBuilder = new ContainerBuilder();
    // populate .NET Core services
    containerBuilder.Populate(services);
    // register your autofac modules
    containerBuilder.RegisterModule(new ApiModule());

    // build container
    Container = containerBuilder.Build();

    // return service provider
    return new AutofacServiceProvider(Container);
}

official documentation

中查看更多详细信息