我在使用 Ninject 的InRequestScope
扩展时遇到了一些问题。看起来我IDocumentSession
在同一个请求中获得了新的实例。我使用 ASP.NET MVC 4 beta 将 RavenDb 作为嵌入式 HttpServer 运行。我有一个如下所示的引导程序类:
public static class ApplicationBootstrapper
{
private static IKernel _kernel;
private static readonly IDocumentStore DocumentStore = new EmbeddableDocumentStore
{
DataDirectory = @"App_Data\RavenDb",
UseEmbeddedHttpServer = true
}.Initialize();
public static void Initialize()
{
DocumentStore.Conventions.IdentityPartsSeparator = "-";
_kernel = new StandardKernel();
_kernel.Bind<IUserService>().To<UserService>();
_kernel.Bind<IDocumentStore>().ToConstant(DocumentStore);
_kernel.Bind<IDocumentSession>().ToMethod(x =>
{
var store = x.Kernel.Get<IDocumentStore>();
return store.OpenSession();
}).InRequestScope();
}
public static IKernel Kernel
{
get { return _kernel; }
}
}
我尝试将范围设置为InSingeltonScope
. 在那种情况下,我确实得到了相同的IDocumentSession
结果,但这当然不是我想要的。关于我在这里可能做错的任何建议?