我想在使用VS2012的WPF应用程序中使用Unity,我定义了unity容器,如下所示:
IUnityContainer unityContainer = new UnityContainer();
unityContainer.RegisterType<IMainViewModel, MainViewModel>();
var window = unityContainer.Resolve<MainWindow>();
window.Show();
我的窗口构造函数如下所示:
public MainWindow(IMainViewModel mainViewModel)
{
InitializeComponent();
this.DataContext = mainViewModel;
}
当我运行应用程序时,出现以下错误:
我究竟做错了什么?
最佳答案
在App.xaml
中,确保已摆脱设置的StartupUri="MainWindow.xaml"
属性。由于您已覆盖了应用程序的OnStartup
并提供了MainWindow
的自定义实例,因此您不应保留在App.xaml文件中设置的默认 StartupUri
属性,WPF会拼命尝试在没有默认构造函数的情况下实例化类型。
关于c# - WPF和Unity-在类型上找不到匹配的构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24251244/