Где находится область Autofac InstancePerApiRequest?

#c# #autofac #owin #asp.net-web-api2

#c# #autofac #owin #asp.net-web-api2

Вопрос:

Я просматриваю код обоих Autofac.Integration.WebApi , Autofac.Integration.WebApi.Owin и я вижу, как InstancePerApiRequest InstancePerHttpRequest создается и сохраняется область / lifetime HttpRequestMessage , но я не вижу, куда она удаляется в конце запроса.

Я бы ожидал HttpModule , что промежуточное программное обеспечение или OWIN удалит область, но не может ее найти.

Кто-нибудь знает, где именно InstancePerApiRequest InstancePerHttpRequest уничтожается область Autofac / lifetime (помеченная AutofacWebRequest )?

Ответ №1:

Если вы используете интеграцию промежуточного программного обеспечения OWIN, здесь (через using блок) указывается область жизненного цикла.

Если вы используете обычный AutofacWebApiDependencyResolver , он удаляется здесь (через IDependencyResolver службу веб-API).

Комментарии:

1. Привет, спасибо за ответ! Но разве я не должен использовать как интеграцию промежуточного программного обеспечения, так и настройку AutofacWebApiDependencyResolver ? Например code , var DependencyResolver = новый AutofacWebApiDependencyResolver(контейнер); конфигурация. DependencyResolver = DependencyResolver; приложение. Используйте программное обеспечение autofacmiddleware (контейнер); приложение. Используйте autofacwebapi(конфигурация); code

2. Я не думаю, что это часть первоначального вопроса, но нет, вам не нужно использовать часть OWIN, если у вас нет промежуточного программного обеспечения, зависящего от Autofac.