Posso especificar o escopo no Ninject apenas para esta situação específic

Earlier eu pergunteiessa questã. A resposta à qual resultou em outra pergunta como tu vês diante de t

O problema inicial

Meu problema é que tenho um @ personalizaMembershipProvider usando umAccountRepository usando umObjectContext. Porque oMembershipProvider é umSingleton no MVC (como eu entendo), oAccountRepository e os seusObjectContext deve ser injetado uma vez e permanecer lá pelo restante doMembershipProvider tempo de vida de

No entanto, em meus controladores, também uso repositórios com contextos de objeto. Nestes controladores, preciso que o contexto do objeto seja compartilhado entre os repositórios com uma solicitação. Eu tenho a seguinte ligação:

Bind<IMyContext>().To<MyObjectContext>().InRequestScope();
// put bindings here
Bind<IAccountRepository>().To<EFAccountRepository>

E noApplication_Start()

kernel.Inject(Membership.Provider);

O problema é que aparentemente o Ninject chama descarte no contexto do objeto quando pensa que a solicitação foi concluída (acho que depois de 30 segundos

Minha solução (não está funcionando)

Notei que, quando você define suas ligações, pode especificar "ao injetar". O problema é que eu preciso "ao injetar ao injetar no". I.e. quando injetar o contexto do objetopara dentr o controlador da conta quando injetar o controlador da contapara dentr o provedor de associação. E eu não pareço ter isso ...

oluções alternativas em que pensei (mas realmente não gosto Não pendureMyMembershipProvider no MVC. Basta passar uma instância (por trás e interface) para os controladores que precisam, como eu faço com os repositórios. Em seguida, o Ninject instancia o provedor por solicitação. Não gosto, porque tenho certeza que o MVC tem um motivo para instanciar o provedor de associação como um singleto Encontre um evento que ocorra a cada solicitação e chamekernel.Inject novamente em cada evento. Reinicializar o provedor a cada solicitação é quase equivalente a reinstalar, exceto que seja mais suj Crie um repositório de contas separado para o provedor de associação ao qual eu possa vincular de uma maneira diferente. Não parece correto alterar meu modelo de objeto por causa do NinjecConclusã

IMHO, a primeira solução alternativa é a melhor. No entanto, prefiro encontrar uma maneira de definir o Ninject para vincular da maneira que eu quer

O que devo fazer

questionAnswers(1)

yourAnswerToTheQuestion