Czy możliwe jest użycie ninject do wstrzykiwania zależności w taki sposób, aby wynik był podobny do wstrzyknięcia, które mogę uzyskać w MVC. Aby opracować, jeśli używam adaptera MVC ninject, mogę zadeklarować, że moje kontrolery sieci mają parametry konstruktora, które następnie byłyby automatycznie wstrzykiwane przez ninject.Injektor wtrysku konstruktora w WPF
Jednak nie znalazłem takiego ninject rozszerzenie dla WPF, który pozwoliłby mnie mieć okno takie jak to:
public partial class MainWindow : Window
{
private readonly IService injectedService;
public MainWindow(IService injectedService)
{
this.injectedService = injectedService;
}
}
chciałbym to zrobić bez jawnie przy użyciu IKernel
w moim uruchomienie głównej aplikacji w celu uzyskania wystąpienia mainowindow. Zdecydowanie wolałbym korzystać z normalnej metody konfiguracji xaml, aby uzyskać wystąpienie okna głównego i wszystkich kolejnych okien.
Czy to możliwe? Czy istnieje sposób, aby podłączyć się do tworzenia obiektów generowanych przez xaml, aby zmodyfikować go, aby użyć Ninject do wstrzyknięcia zależności od konstruktora.
Nie sądzę, że takie rozszerzenie istnieje, ponieważ w WPF zwykle używasz wzorca MVVM i w ten sposób wstrzykniesz usługi do twoich klas ViewModel. –
Ale czy same modele nie są również tworzone za pomocą XAML? Wprawdzie nie jestem ekspertem od WPF, ale czy modele nie potrzebują tego samego rodzaju zastrzyku zależności? Obawiam się, że mój kontener pokazuje, co przeszkadzałoby w testowaniu jednostkowym projektu. – Dervall
Nie, ViewModels nie są tworzone w XAML. Są one tworzone w ViewModelLocator, zobacz [tutaj] (http://windowsphonegeek.com/articles/Working-with-a-simple-ViewModelLocator- from - MVVM-Lite) na przykład. Twoje widoki lub ViewModels nie wiedzą nic o twoim kontenerze wtrysku zależności. –