2012-02-19 4 views
3

Ninjectの次のコードでは、両方のバインディングに同じUnitOfWorkインスタンスを使用するか、リクエストごとに合計2つのインスタンスを作成します(バインディングごとに1つ)。Ninject-doスコープは、バインディングまたはターゲットオブジェクトに適用されますか?

Bind<IUnitOfWork>().To<UnitOfWork>().InRequestScope(); 
Bind<UnitOfWork>().To<UnitOfWork>().InRequestScope(); 

前者がない場合、どのように私はIUnitOfWorkとUnitOfWorkのための要求の両方が同じリクエストに対して同じUnitOfWorkのインスタンスを起動することができますか?

私は内部クラスの1つがIUnitOfWorkの特定の実装のプロパティに依存するモジュールを持っています。なぜなら、私は自己バインディングも必要とするからです。

答えて

3

Ninject 3.0.0をインポートしたいあなたはいけない場合、あなたがこれを行う理由について

Bind<UnitOfWork>().ToSelf().InRequestScope(); 
this.BindInterfaceToBinding<IUnitOfWork, UnitOfWork>(); 

相続人Remosポストといくつかの他の選択肢:この問題を回避するにはContextPreservation拡張子を追加し、次のバインディングを使用します許可する

Bind<UnitOfWork, IUnitOfWork>().To<UnitOfWork>().InRequestScope(); 
関連する問題