我想在使用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/

10-12 01:46