我正在实现一个项目,主要目标是松散耦合的类实现,例如下面,我使用简单的IOC容器将PageNavigation和AppConfig实例注入到视图模型中。
public MyViewModel(IPageNavigationService PageNavigation, IAppConfig AppConfig) {
//my code
}
答案 0 :(得分:1)
通过构造函数传递给viewmodel实例没有实例限制。您应该传递ViewModel通过构造函数正常工作所需的所有依赖项。
PropertyInjection可以传递可选的依赖关系或提供不同的实现。
您还可以定义构造函数以获取对IOC-Container的引用,以便ViewModel在构造函数中自行解析必要的依赖项。但是,您的viewmodel是容器的依赖项,有时不需要。
public MyViewModel(IocContainer container) {
// resolve dependencies via the container
}