c# - 通过 View 模型构造函数传递的对象实例的理想数量(依赖注入(inject))

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

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

public MyViewModel(IPageNavigationService PageNavigation, IAppConfig AppConfig) {
   //my code
}
  1. 我可以通过构造函数传递的实例数量是否有限制? ,这可能会导致无法预料的问题。
  2. 如果我需要传递 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/

相关文章:

c# - ASP :DropDownList Codebehind Add Color

android - 一个 ViewModel 用于多个 View 还是多个 ViewModel 用于单个 View ?

c# - 在 View 中显示来自 ViewModel 的平均值

css - WP8 + HTML5 : Flickering between page changes

c# - 返回时导致 SEGFAULT 的非托管函数指针

c# - OpenXML - 获取图像替代文本标题

c# - 将字典<T,U>转换为字典<T,U.PropertyValue>

c# - XAML-动态在BitmapIcon中设置UriSource

ruby-on-rails - iframe 导致无法验证 Rails 中的 CSRF token 真实性

c# - Windows Phone 8 蓝牙错误 HRESULT : 0x8007271D