0

WPF/Caliburn Micro と Ninject を使用しており、これを呼び出すブートストラップがあります:-

Bind<IEventAggregator>().To<EventAggregator>().InSingletonScope();

私の理解では、これはオブジェクトがインスタンス化されるたびにコンストラクターのパラメーター リストに挿入されますが、コンストラクターをパラメーターなしにする必要がある場合があります。コンストラクターにパラメーターを指定できない場合、EventAggregator にアクセスするにはどうすればよいでしょうか?

4

1 に答える 1

0

Service Locator Patternを見てください。

アップデート

あなたのコメントへの応答: InSingeltonScope()Ninject は 1 つのインスタンスのみを作成し、要求されるたびにIEventAggregatorその 1 つのインスタンスを返すことを意味します。それを求めるメカニズムはまだ必要です。インジェクションの場合、コンストラクターはインジェクションを要求しています。コンストラクターがパラメーターなしの場合、サービス ロケーターはインスタンスを要求する方法です。

更新 2

役に立つと思われるいくつかのリンクを次に示します。

http://stefanoricciardi.com/2009/09/25/service-locator-pattern-in-csharpa-simple-example/

http://blog.longle.net/2012/02/15/wrapping-the-ninject-kernel-with-servicelocator/

于 2012-11-19T14:30:22.127 に答える