2012-02-02 6 views
1

종속성 주입을 위해 ninject를 사용하는 WinForm 응용 프로그램에서 작업하고 있습니다. 내 첫 번째 문제는 인스턴스화되는 양식에 매개 변수 (DI의 경우)가 있다는 것입니다. 나는 이것이 도움이 될 것이라고 생각하는 매개 변수없는 생성자를 추가했다. 문제는 이제 매개 변수가있는 생성자 내부의 코드가 건너 뛴다는 것입니다. 여기는 모습 같은 : 나는 _applicationProperties.GetExtractFileSaveLocationDirectory()를 호출 할 때 코드가 설정 때문에ninject di 및 winforms와 함께 매개 변수없는 생성자를 사용하는 방법

private readonly IApplicationPropertiesInterface _applicationProperties; 

public frmSettings() 
{ 
    InitializeComponent(); 
} 

public frmSettings(IApplicationPropertiesInterface applicationProperties) : this() 
{ 
    _applicationProperties = applicationProperties; 
} 

그것이 불면 다음 frmSettings 양식에서

private void mnuSettings_Click(object sender, System.EventArgs e) 
{ 
    frmSettings objForm = new frmSettings(); 
    objForm.Owner=this; 
    objForm.Show(); 
} 

: 내 주요 양식에

_applicationProperties가 호출되지 않았습니다.

내가 잘못 구성했는지 궁금하고,이를 달성하는 가장 좋은 방법은 무엇입니까? 내 목표는 매개 변수가없는 생성자를 호출하는 것뿐 아니라 _applicationProperties를 설정하는 것입니다.

모든 도움이 가장 감사 할 것입니다.

+0

frmSettings. –

답변

0

나는 건물에서 Ninject를 갖는 것이 new이 정상적으로 다르게 작동한다는 것을 예상하고 있을지도 모릅니다. DI가 걷어차 기 위해 kernel.Resolve<Something>을해야 할 필요가 있습니다.이 함정의 대부분은 the wiki

에 자세히 나와 있습니다. 외부에서하는 일에 대한 세부 정보를 포함하도록 답을 편집 할 수 있습니까? 이 양식은 제발? 한편

, 여기에 크게 겹치는 일부 이전 질문입니다 - objForm 등록 및 컨테이너에 의해 해결해야

관련 문제