2014-11-10 2 views
4

У меня есть статический класс для настройки регистрации Autofac, и его метод вызывается в Application_Start. Что-то вроде этого:Как утилизировать контейнер Autofac?

public static class RegisterAutofac 
{ 
    public static void Setup() 
    { 
     var config = GlobalConfiguration.Configuration; 
     var builder = new ContainerBuilder(); 

     //Do registration here... 

     var container = builder.Build(); 
     var resolver = new AutofacWebApiDependencyResolver(container); 

     GlobalConfiguration.Configuration.DependencyResolver = resolver; 
    } 
} 

До сих пор я не нашел примеров, которые располагают контейнером.

Достаточно ли или нужно вернуть контейнер, а затем утилизировать контейнер в методе Dispose в Global.asax?

ответ

3

В этом случае вам не нужно называть его, поскольку AutofacWebApiDependencyResolver уже IDisposable и принимает контейнер в качестве зависимости. Он вызывает Dispose при размещении AutofacWebApiDependencyResolver

AutofacWebApiDependencyResolver будет автоматически установлен системой, поскольку объект HttpConfiguration внутри Configuration уже располагает.

Надеюсь, это поможет.

+0

Нет. Должен ли я вернуть распознаватель из этого метода и утилизировать его в global.asax? –

+0

После проверки его, пожалуйста, см. Мое редактирование. –

Смежные вопросы