Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将Autofac与Asp.net core 2.2集成_C#_Asp.net Core_Dependency Injection_.net Core_Autofac - Fatal编程技术网

C# 如何将Autofac与Asp.net core 2.2集成

C# 如何将Autofac与Asp.net core 2.2集成,c#,asp.net-core,dependency-injection,.net-core,autofac,C#,Asp.net Core,Dependency Injection,.net Core,Autofac,我有以下指南: 在最后一步,它显示: // Create the IServiceProvider based on the container. return new AutofacServiceProvider(this.ApplicationContainer); 但是,在Asp Net core 2.2的最新版本中,函数ConfigureServices(IServiceCollection services)返回无效 public void ConfigureServices(ISe

我有以下指南:

在最后一步,它显示:

// Create the IServiceProvider based on the container.
return new AutofacServiceProvider(this.ApplicationContainer);
但是,在Asp Net core 2.2的最新版本中,函数ConfigureServices(IServiceCollection services)返回无效

public void ConfigureServices(IServiceCollection services)

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

在您的解决方案中,您在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);
}

请参阅

中的更多详细信息,只需将
void
替换为
IServiceProvider
。事实上,它在@john起作用了。当我即将发布基本相同的内容时,您可能希望在您的答案中添加一些文本来解释它的作用,即使它只是引用(和链接到)文档:)这与Autofac的教程完全相同。主要是我们可以更改ConfigService函数的declare以返回IServiceProvider