MVVM Light Apuntas Notas的CategoryEditorViewModel构造函数
本文关键字:CategoryEditorViewModel 构造函数 Notas Light Apuntas MVVM | 更新日期: 2023-09-27 17:49:37
我已经下载并运行了示例并理解了大多数内容,除了我无法找出CategoryEditorViewModel类从哪里获得它的构造函数参数。它是"ICategoryRepository categoryRepository",我已经搜索了引用,但仍然无法理解在创建视图模型时如何以及在哪里传递参数。我希望有人能给我一个答案。
我也有同样的问题。
到目前为止,我从像
这样的线程中发现带有多个参数的构造函数
以及更多的是,在bootstrap.cs文件中的Apuntas Notas项目中,接口ICategoryRepository被注册为类categoryrepository。
因此,当属性CategoryEditor
试图通过
public CategoryEditorViewModel CategoryEditor
{
get { return _bootStrapper.Container.Resolve<CategoryEditorViewModel>(); }
}
和实例不存在,它尝试用它唯一的构造函数创建一个类CategoryEditorViewModel
的对象,该构造函数期望ICategoryRespository
接口。
正如我之前提到的,我们在bootstrap.cs文件中用CategoryRepository
类注册了这个接口。因此,它创建了一个CategoryRepository对象,并将其传递给视图模型构造函数。
希望这能消除你的疑虑。
如果你想知道如果你有多个构造函数会发生什么,你可以在bootstrap。cs中注册一个你喜欢的,比如Container.RegisterType<CategoryEditorViewModel>(new InjectionConstructor(typeof(ICategoryRepository), 5));
,现在如果你在CategoryEditorViewModel中有另一个构造函数额外期望一个int,它将被调用,而不是之前的那个。(传递一个int值为5是相当愚蠢的,但希望你得到的图片,你可以给你的首选构造函数的参数类型,并确保他们注册与bootstrap容器)