この質問への答えは非常に明白なので、誰もこれについて書くことを気にしませんでしたが、遅く、私は本当にこれについて頭を悩ませることができません。
私はIoCコンテナー(この場合はWindsor)を読んでいますが、コードのさまざまな部分からコンテナーと通信する方法がわかりません。
私はDIを取得し、poor mans DI(デフォルトのパラメーター実装でオーバーロードされたインジェクションコンストラクターを呼び出す空のコンストラクター)をしばらく行ってきましたが、コンテナーの利点を完全に確認できます。ただし、重要な情報が1つ欠けています。コンテナからのサービスが必要になるたびに、どのようにコンテナを参照することになっていますか?
渡す単一のグローバルな保険を作成しますか?絶対にありません!
私はこれを呼ぶべきだと知っています:
WindsorContainer container = new WindsorContainer(new XmlInterpreter());
(たとえば)XML構成をロードしたいのですが、コンテナーをどうすればよいですか?その後、毎回新しいコンテナを作成して、ロードされた構成を内部の静的マジックなどで永続化しますか、それとも毎回構成をリロードする必要がありますか(そうでないか、ライフサイクルが機能しませんでした)。
これを理解できないと、ライフサイクルがどのように機能するかを理解できなくなり、IoCの恐ろしさを使い続けることができなくなります。
ありがとう、
アンドリュー