2

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

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

1 回答 1

1

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

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

您还可以定义一个构造函数来获取对 IOC-Container 的引用,以便 ViewModel 在构造函数中自行解析必要的依赖关系。但是然后让您的视图模型依赖于有时不需要的容器。

public MyViewModel(IocContainer container) {
   // resolve dependencies via the container
}
于 2013-04-17T07:04:24.083 回答