窗口依赖注入

时间:2016-08-01 13:02:07

标签: c# wpf dependency-injection

我想在WPF应用程序中使用Unity依赖注入。我的窗口抛出System.Windows.Markup.XamlParseException:

  

"对于MainWindow类型,找不到默认构造函数"。

这是我的代码:

App.xaml.cs:

IUnityContainer container = new UnityContainer();
container.RegisterType<MainWindow>();
container.RegisterType<IService, MyService>();
container.RegisterType<IRepository, MyRepository>();
container.Resolve<MainWindow>().Show();

MainWindow.xaml.cs:

public MainWindow(IService service)
{
     InitializeComponent();
     service.Test();
}

1 个答案:

答案 0 :(得分:3)

您始终需要为视图设置默认构造函数,以便WPF应用程序正常运行。

public MainWindow()
{
     InitializeComponent();
}

然后定义参数化构造函数,如下所示:

public MainWindow(IService service) : this()
{
     service.Test();
}