私は ServiceStack を初めて使用するので、これはおそらく初歩的な質問です。
ServiceStack を使用する ASP.NET MVC4 アプリケーションに取り組んでおり、派生した MVC4 コントローラーで使用されるクラス (EF コンテキストまたは PetaPoco データベース) 内から現在の IAuthSession を取得する方法を見つけようとしています。 ServiceStackController。
問題のクラスは、ReuseScope.Request スコープで (つまり、HTTP 要求ごとに) Funq に登録されています。理想的には、そのすべてのインスタンスを、コンストラクター パラメーターまたは public財産。
それ、どうやったら出来るの?
アップデート
掘り下げた後、うまくいくと思うものを思いつきました。
私AppHost.Configureの場合、現在のリクエストからセッションを返すラムダを登録します。
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....
}
残念ながら、私はこの回避策をテストできる開発段階にないので、他の人にそれが意味があるかどうか尋ねなければなりません.