我是 ServiceStack 的新手,所以这可能是一个菜鸟问题:
我正在开发一个使用 ServiceStack 的 ASP.NET MVC4 应用程序,并试图弄清楚如何从我的 MVC4 控制器使用的类(EF 上下文或 PetaPoco 数据库)中获取当前 IAuthSession服务堆栈控制器。
有问题的类在 Funq 中注册了 ReuseScope.Request 范围(即基于每个 HTTP 请求),理想情况下,我希望它的每个实例都使用构造函数参数或公共的当前 IAuthSession 自动装配财产。
我怎么做?
更新
经过一番挖掘,我想出了我认为可能有用的方法。
在我AppHost.Configure
的注册中,我注册了一个从当前请求返回会话的 lambda:
container.Register<IAuthSession>(c =>
HttpContext.Current.Request.ToRequest().GetSession());
还:
container.RegisterAutoWired<EFCatalogDb>();
EFCatalogDb
我的 EF 上下文IAuthSession
作为构造函数参数在哪里:
public class EFCatalogDb : DbContext
{
public EFCatalogDb(IAuthSession session) : base()
{ }
// ...etc....
}
不幸的是,当我可以测试此解决方法时,我还没有处于开发阶段,因此必须询问其他人这是否有意义。