Injetando uma dependência no OWIN Middleware e por solicitação da Web com o Simple Injector
Estou tentando descobrir como injetar melhor todas as minhas dependências no OWIN Middleware personalizado que escrevi para um aplicativo de API da Web. Um exemplo simples seria o DbContext que estou usando. Eu tenho algum middleware que precisa potencialmente consultar com base na solicitação. O problema que tenho é que quero que meu DbContext tenha um escopo WebApiRequestLifestyle. Meu DbContext está registrado como tal:
container.Register<MobileDbContext>(Lifestyle.Scoped);
Obviamente, isso não funciona:
container.Options.DefaultScopedLifestyle = new WebApiRequestLifestyle();
Porque eu preciso do MobileDbContext no meu Middleware usando algo como:
app.CreatePerOwinContext(() =>
{
return container.GetInstance<MobileDbContext>();
};
Tentei um estilo de vida híbrido, mas isso também não funcionou, porque não acho que o Middleware seja tecnicamente algo que possa se enquadrar em um estilo de vida "escopo". Provavelmente é mais perto de um singleton, eu acho.
Existe uma maneira melhor de projetar meu aplicativo para evitar esse problema ou resolvê-lo com algum tipo de estilo de vida com escopo personalizado?