在复合应用程序(Prism)中,当我的模块加载时,我收到此错误:
{“当前的构建操作(构建 密钥构建 键[CustomersModul.ViewModels.CustomerAllViewModel, null])失败:参数视图 尝试时无法解决 调用构造函数 CustomersModul.ViewModels.CustomerAllViewModel(CustomersModul.Views.CustomerAllView 视图)。 (战略类型 Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy, index 2)“}
我解析这个类:
CustomerAllViewModel layoutManager = this.container.Resolve<CustomerAllViewModel>();
该课程看起来像这个:
public class CustomerAllViewModel : ViewModelBase
{
public CustomerAllView View { get; set; }
public ICommand TextChangeCommand { get; set; }
private Customer customer;
public CustomerAllViewModel(CustomerAllView view)
{
View = view;
view.DataContext = this;
...
通常我会解析没有构造函数参数的 Presenters 并在内部实例化他们的视图。这是我第一次使用 ViewModel ,它接受View作为参数。
有趣的是,当我使用 Resharper 进入视图时,它询问我是否要转到XAML或后面的代码,所以也许Prism会混淆哪一个实例化?
如何让Prism在参数中自动实例化此视图(带有XAML和代码隐藏的UserControl)?
答案 0 :(得分:4)
有时这实际上不是错误,而是其他内容。查看内部异常,或调用Microsoft.Practices.Composite.ExceptionExtensions.GetRootException(ex)以获取根异常。您可能会发现在您未看到的构造函数中抛出了一些错误。
答案 1 :(得分:0)
您是否已将CustomerAllView添加到容器中?当我忘记向容器添加类型时,我通常会收到此错误。