Автофакт не соблюдает InstancePerRequest - PullRequest
0 голосов
/ 18 сентября 2018

Я использую Autofac для проекта MVC с Web API.

Я регистрирую все контроллеры:

builder.RegisterControllers(assembly);
builder.RegisterApiControllers(assembly);

и

DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);

I 'Я также использую OWIN, и я регистрирую UserManager для каждого запроса OWIN:

app.CreatePerOwinContext(() => AutofacDependencyResolver.Current.GetService<UserManager>());

Для UserManager требуется экземпляр DbContext, который настраивается для создания одного раза для каждого запроса:

builder.RegisterType<DbContext>()
       .AsSelf()
       .InstancePerRequest();

Вот проблема:

При доступе к контроллеру Web API создается DbContext для удовлетворения вызова CreatePerOwinContext.Затем в моем контроллере я ввожу еще один DbContext, и я ожидал, что экземпляр, введенный в контроллер, будет таким же, созданным в вызове CreatePerOwinContext, , но это не !Если я получаю доступ к контроллеру MVC, все работает как положено.

Я думаю, что Autofac использует два разных распознавателя, а не разделяет экземпляры между ними.Как я могу решить это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...