我正在实现一个项目,主要目标是实现松散耦合的类,例如,我正在使用简单的 IOC 容器将 PageNavigation 和 AppConfig 实例注入(inject) View 模型。
public MyViewModel(IPageNavigationService PageNavigation, IAppConfig AppConfig) {
//my code
}
- 我可以通过构造函数传递的实例数量是否有限制? ,这可能会导致无法预料的问题。
- 如果我需要传递 5 到 6 个对象实例怎么办,有没有其他方法可以访问对象实例而不是构造函数,保持松散耦合和动态,并且所有 View 模型都使用默认实例(单例)正在传递的对象。
最佳答案
通过构造函数传递给 View 模型实例的实例没有限制。您应该通过构造函数传递 ViewModel 正常工作所需的所有依赖项。
可选的或提供不同实现的依赖项可以通过 PropertyInjection 传递。
您还可以定义一个构造函数来获取对 IOC 容器的引用,以便 ViewModel 在构造函数中自行解决必要的依赖关系。但是然后让您的 View 模型依赖于有时不需要的容器。
public MyViewModel(IocContainer container) {
// resolve dependencies via the container
}
关于c# - 通过 View 模型构造函数传递的对象实例的理想数量(依赖注入(inject)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16051561/