Можно ли использовать ninject для инъекции зависимостей таким образом, чтобы результат был чем-то вроде инъекции, которую я могу получить в MVC. Чтобы разработать, если я использую адаптер MVC ninject, я могу объявить, что мои веб-контроллеры имеют параметры конструктора, которые затем будут автоматически введены ninject.Инъекционная инъекция конструктора в WPF
Однако я не нашел такой Ninject расширения для WPF, который позволил бы мне иметь окно, такие как это:
public partial class MainWindow : Window
{
private readonly IService injectedService;
public MainWindow(IService injectedService)
{
this.injectedService = injectedService;
}
}
Я хотел бы сделать это без явного использования IKernel
в моем основной запуск приложения для получения экземпляра mainwindow. Я бы предпочел использовать обычный метод конфигурации xaml для получения экземпляра главного окна и всех последующих окон.
Возможно ли это? Есть ли способ подключиться к созданию объекта, созданного с помощью xaml, чтобы изменить его, чтобы использовать инъекцию зависимостей Ninject для конструктора.
Я не думаю, что такое расширение существует, потому что в WPF вы обычно используете шаблон MVVM и таким образом вводите службы в свои классы ViewModel. –
Но не сами модели, созданные с помощью XAML? По общему признанию, я не эксперт по WPF, но разве модели не нуждались бы в такой же инъекции зависимостей? Я обеспокоен тем, что мой контейнер показывает, что будет препятствовать единичному тестированию проекта. – Dervall
Нет, ViewModels не создаются в XAML. Они создаются в ViewModelLocator, см. [Здесь] (http://windowsphonegeek.com/articles/Working-with-a-simple-ViewModelLocator-from-MVVM-Lite) для примера. Ваши представления или ViewModels ничего не знают о вашем контейнере для инъекций зависимостей. –