종속성 주입에 ninject를 사용하여 결과가 MVC에서 얻을 수있는 주입과 같은 방식으로 사용할 수 있습니까? 정교하게, 만약 MVC ninject adapter를 사용한다면 웹 컨트롤러에 생성자 파라미터를 선언 할 수 있습니다. 생성자 파라미터는 자동으로 ninject에 의해 주입됩니다.WPF에서 Ninject 생성자 삽입
그러나, 나는 이와 같은 창문이 저를 가능하게 할 WPF에 대한 이러한 Ninject에 확장, 발견되지 않은 :
public partial class MainWindow : Window
{
private readonly IService injectedService;
public MainWindow(IService injectedService)
{
this.injectedService = injectedService;
}
}
내가 명시 적으로 IKernel
를 사용하지 않고이 작업을 수행하고자하는 내 mainwindow의 인스턴스를 얻기위한 메인 애플리케이션 시작. 주 윈도우 및 모든 후속 윈도우의 인스턴스를 얻으려면 xaml 구성의 일반적인 방법을 사용하는 것을 선호합니다.
이것이 가능합니까? 생성자 종속성 주입을 위해 Ninject를 사용하도록 xaml에 의해 생성 된 객체 생성에 연결하는 방법이 있습니까?
WPF에서는 일반적으로 MVVM 패턴을 사용하므로 ViewModel 클래스에 서비스가 삽입되므로 이러한 확장이 존재하지 않는다고 생각합니다. –
그러나 모델 자체가 XAML을 통해 만들어지지 않았습니까? 틀림없이 WPF에 대한 전문가는 아니지만 모델에 종속성 주입과 같은 종류의 제품이 필요하지 않습니까? 프로젝트의 단위 테스트를 방해하는 컨테이너 표시에 대해 우려하고 있습니다. – Dervall
아니요, ViewModels은 XAML에서 만들어지지 않습니다. 그것들은 ViewModelLocator에서 생성됩니다. 예제는 [here] (http://windowsphonegeek.com/articles/Working-with-a-simple-ViewModelLocator-from-MVVM-Lite)에서 볼 수 있습니다. 뷰 또는 ViewModel은 종속성 주입 컨테이너에 대해 아무것도 모릅니다. –