Как интегрировать Autofac с ядром Asp.net 2.2 - PullRequest
0 голосов
/ 04 апреля 2019

Я следую руководству по адресу: https://autofac.readthedocs.io/en/latest/integration/aspnetcore.html

На последнем шаге оно показывает:

// Create the IServiceProvider based on the container.
return new AutofacServiceProvider(this.ApplicationContainer);

Однако, в последней версии ядра Asp Net 2.2, функция ConfigureServices (IServiceCollection services) is return void

public void ConfigureServices(IServiceCollection services)

Как я могу изменить свой код после последних изменений?

1 Ответ

4 голосов
/ 04 апреля 2019

В своем решении вы использовали void тип возврата в методе ConfigureServices:

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

Подробнее см. В официальная документация

...