0

解決一類通用的處理程序我有一個名爲配置類具有服務的一個構造器注入我的WebAPI項目。註冊和使用AutoFac

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

我需要在用於圖像上傳的通用處理程序中使用此Config類。誰能幫我在啓動類註冊此配置類和處理程序類解決這個問題。我以正常的方式嘗試,但沒有找到無參數的構造函數發現錯誤。

+0

爲什麼你有ASP的通用處理器。淨MVC? –

+0

的可能的複製[autofac - 依賴注入到IHttpModule的](http://stackoverflow.com/questions/16803292/autofac-dependency-injection-into-ihttpmodule) – NightOwl888

回答

1

由於ASP.net內部設計的限制,在沒有辦法使用構造函數注射的通用處理器。

在你啓動類,確保DependencyResolver定義:

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

然後在構造函數中的HttpHandler的使用DependencyResolver類:

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

    private readonly IConfig _config; 

    // implements IHttpHandler 
}