我是新來ServiceStack,所以這可能是一個noob問題:在ServiceStack/MVC4非控制器類訪問IAuthSession
我正在使用ServiceStack的ASP.NET應用程序MVC4和我試圖找出從我的MVC4控制器派生自ServiceStackController的類(EF上下文或PetaPoco數據庫)中獲取當前IAuthSession的方法。
有問題的類在Funq中使用ReuseScope.Request作用域(即基於每個HTTP請求)註冊,理想情況下我希望每個實例都使用當前的IAuthSession自動裝配,使用構造函數參數或公共屬性。
我該怎麼做?
UPDATE
一些挖後,我來到了我的想法可能會奏效。
在我AppHost.Configure
我註冊,從目前的請求返回會話的拉姆達:
container.Register<IAuthSession>(c =>
HttpContext.Current.Request.ToRequest().GetSession());
另外:
container.RegisterAutoWired<EFCatalogDb>();
其中EFCatalogDb
是需要IAuthSession
作爲一個構造函數參數我EF方面:
public class EFCatalogDb : DbContext
{
public EFCatalogDb(IAuthSession session) : base()
{ }
// ...etc....
}
不幸的是,當我可以測試這個解決方法時,我不在我的開發中,所以必須問問別人是否有意義。
找到東西聽起來很相似,我想要做的,但沒有真正的答案有: https://groups.google.com/forum/#!topic/servicestack/jnX8UwRWN8A –