通过View View Model构造函数传递的理想对象实例数(依赖注入)

时间:2013-04-17 04:33:41

标签: c# mvvm windows-phone-8 windows-phone mvvm-light

我正在实现一个项目,主要目标是松散耦合的类实现,例如下面,我使用简单的IOC容器将PageNavigation和AppConfig实例注入到视图模型中。

public MyViewModel(IPageNavigationService PageNavigation, IAppConfig AppConfig) {
   //my code
}
  1. 我可以通过构造函数传递的实例数有限制吗? ,这可能会导致无法预料的问题。
  2. 如果我需要传递5到6个对象实例,有什么其他方法可以访问除构造函数之外的对象实例,保持松散耦合和动态,并且所有View模型都使用默认实例(singleton)传递的物体。

1 个答案:

答案 0 :(得分:1)

通过构造函数传递给viewmodel实例没有实例限制。您应该传递ViewModel通过构造函数正常工作所需的所有依赖项。

PropertyInjection可以传递可选的依赖关系或提供不同的实现。

您还可以定义构造函数以获取对IOC-Container的引用,以便ViewModel在构造函数中自行解析必要的依赖项。但是,您的viewmodel是容器的依赖项,有时不需要。

public MyViewModel(IocContainer container) {
   // resolve dependencies via the container
}