Внедрение зависимости в OWIN Middleware и веб-запрос с помощью Simple Injector

Я пытаюсь решить, как наилучшим образом внедрить все мои зависимости в пользовательское промежуточное ПО OWIN, которое я написал для приложения Web API. Простым примером будет DbContext, который я использую. У меня есть какое-то промежуточное программное обеспечение, которое потенциально может запрашивать на основе запроса. У меня проблема в том, что я хочу, чтобы мой DbContext иначе имел область действия WebApiRequestLifestyle. Мой DbContext зарегистрирован как таковой:

container.Register<MobileDbContext>(Lifestyle.Scoped);

Очевидно, это не работает:

container.Options.DefaultScopedLifestyle = new WebApiRequestLifestyle();

Потому что мне нужно MobileDbContext в моем Middleware, используя что-то вроде:

app.CreatePerOwinContext(() =>
{
    return container.GetInstance<MobileDbContext>();
};

Я пробовал гибридный образ жизни, но это также не сработало, потому что я не думаю, что Middleware - это технически то, что может подпадать под "ограниченный" образ жизни. Я думаю, это ближе к синглтону.

Есть ли лучший способ спроектировать мое приложение, чтобы избежать этой проблемы или решить ее с помощью определенного стиля жизни?

Ответы на вопрос(1)

Ваш ответ на вопрос