1
我在使用Ninject的InRequestScope
擴展時遇到了一些問題。看起來我在同一個請求中獲得了IDocumentSession
的新實例。我使用ASP.NET MVC 4測試版將RavenDb作爲嵌入式HttpServer運行。我有一個引導程序類,看起來像這樣:嵌入式HttpServer模式中的ASP.NET MVC 4和Ninject InRequestScope與RavenDb IDocumentSession
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
,但那當然不是我想要的。任何關於我可能在這裏做錯的建議?
工作很好,非常感謝! – Pelle