0

У меня есть класс под названием Config в моем проекте WebAPI, который имеет одну конструкторскую инъекцию услуги.Зарегистрируйте и разрешите класс в родовом обработчике с помощью AutoFac

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

Мне нужно использовать этот класс Config в общем обработчике, используемом для загрузки изображения. Может ли кто-нибудь помочь мне зарегистрировать этот класс Config в классе Startup и разрешить его в классе Handler. Я попробовал это обычным способом, но не обнаружил ошибки без конструктора.

+0

почему у вас есть общий обработчик с ASP. net 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 
} 
Смежные вопросы