私は 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....
}
残念ながら、私はこの回避策をテストできる開発段階にないので、他の人にそれが意味があるかどうか尋ねなければなりません.