使用 AutoFac 在通用处理程序中注册并解析 class

Register and resolve a class in generic handler using AutoFac

我的 WebAPI 项目中有一个名为 Config 的 class,它有一个服务构造函数注入。

 public class Config: IConfig
 {
     protected readonly IConfigService _configService;
     public Config(IConfigService configService)
     {
         this._configService = configService;
     }
}

我需要在用于图像上传的通用处理程序中使用此配置 class。谁能帮我在 Startup class 中注册这个 Config class 并在 Handler class 中解析它。我确实以正常方式尝试过,但是没有发现无参数构造函数错误。

由于 ASP.net 内部设计限制,无法通过通用处理程序使用构造函数注入。

在您的启动 class 中,确保 DependencyResolver 已定义:

// Set the dependency resolver to be Autofac.
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

然后在 HttpHandler 的构造函数中使用 DependencyResolver class :

public class TestHandler : IHttpHandler 
{
    public TestHandler()
    {
        this._config = DependencyResolver.Current.GetService(typeof(IConfig)); 
    }

    private readonly IConfig _config; 

    // implements IHttpHandler 
}