이제는 Engine
을 만들 때 새로운 Compoment
이 필요하고 Engine
은 Component
에 'this'를 전달해야합니다.두 개체를 연결하는 종속성 삽입
Component
을 만들 때 해당 부모 Engine
을 알아야하고 IntegrateComponent()
함수를 호출하여 통합해야합니다.
여기는 순환 참조 상황의 일종입니다. DI에서 어떻게합니까? (내 성 윈저)
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이 엔진 & 서로이 구성 요소에 대한 참조를 말할 것입니까? 먼저
어디서 DI가 필요합니까? (당신이하려는 일의 예를 보여줄 수 있습니까?) –