#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.