在许多ViewModel中注入相同的服务实例

时间:2013-07-02 21:07:54

标签: .net mvvm dependency-injection inversion-of-control

我有一个管理Views实例的ViewManager类。 它由ShellViewModel和许多其他ViewModel使用,它必须通过构造函数注入。 ShellViewModel注入了ViewManager。 如果我使用工厂创建一个新的ViewModel,谁应该为工厂提供ViewManager以便将其注入新的VM?

  1. 容器? (这意味着容器将ViewManager注入工厂,工厂将其注入新VM)
  2. ShellViewModel? (这意味着ShellVM执行类似factory.Create(this.ViewManager)
  3. 的操作

    最好的方法是什么?谢谢大家!

1 个答案:

答案 0 :(得分:1)

最好的方式if you're using MVVM is to use an MVVM framework。要回答您的问题,您需要通过工厂构造函数而不是工厂方法注入视图管理器,因此选项1。

实际上你并不想自己管理视图实例 - 而是使用已经为你完成所有工作的框架,而不是重新发明劣质轮。