2010-10-12 40 views
0

我很難用Ninject V2的InRequestScope()來管理UnitOfWork。Ninject V2 InRequestScope:在每個請求上觸發構造函數

_kernel.Bind<UnitOfWork>().To<SqlUnitOfWork>().InRequestScope(); 

我希望每當我通過容器請求UnitOfWork時,始終在整個請求中返回相同的對象。然而,在調試器中,我在對象的構造函數上有一個斷點,並且無論何時向容器發出請求,構造函數都會觸發,就好像創建了一個新對象。

var uow = CreateKernel().Get<UnitOfWork>(); 

有沒有人有類似的經歷,或者我缺少重要的東西?

+0

你確定這個物體沒有被其他方式破壞嗎? – Larsenal 2010-10-12 23:14:35

+1

另外,你的'CreateKernel'方法是什麼樣的? – Larsenal 2010-10-12 23:22:39

+0

感謝評論@Larsenal,這個問題事實上與我在初次調用之後訪問CreateKernal方法有關。 – WDuffy 2010-10-12 23:39:36

回答

1

因爲有其他人有這個問題,我的問題與global.asax文件有關。我手動將CreateKernal的結果存儲在一個私有變量中。通過基本NinjectHttpApplication類的Kernal屬性更改訪問請求的創建內核對問題進行了排序。