の作成時に、新しい、をEngine
必要とし、 「this」自体をに渡します。Compoment
Engine
Component
の作成時に、親を認識し、関数を呼び出すことで親と統合するComponent
必要があります。Engine
IntegrateComponent()
ここでは、一種の循環参照状況です。DIでこれを行うにはどうすればよいですか?(私の場合はCastle Windsor)
public class Engine : IEngine {
private IComponent _someComponent;
public Engine() {
_component = new Component(this);
}
public void IntegrateComponent() {
//init component...
}
}
public class Component : IComponent {
private readonly IEngine _engine;
public Component(IEngine engine) {
_engine = engine;
_engine.IntegrateComponent();
}
}
static void Main() {
var engine = new Engine();
}
編集 - - - - - - - - - - - - - - - - - - - -
私は...のようなものが欲しい
Register<IComponent>().ImplementedBy<Component>();
Register<IEngine>().ImplementedBy<Engine>();
---> Resolve<IEngine>(); ...
しかし、DIにこのエンジンとこのコンポーネントの参照を相互に伝えるにはどうすればよいですか?