【发布时间】:2014-05-21 03:40:13
【问题描述】:
我发现在 WPF 中,通常不可能只在复合根目录中使用 DI 容器。我在根目录中设置了所有依赖项,但我发现需要实例化根本无法在根目录中实例化的视图模型。
以选项卡中的自定义控件或在新窗口中生成的自定义控件为例。当视图激活时,它们的视图模型需要由视图本身实例化。我的许多视图模型都需要一个对话框提供程序,我将其作为接口注入到 VM 构造函数中。
我没有将 DI 容器用作服务定位器。我坚信构造函数注入,但正如我所说,我发现需要使用 DI 容器来实例化远超出复合根的视图模型。到目前为止,我一直在使用一个静态类来承载我可以在整个应用程序中使用的 DI 容器。
我只是想知道你们是如何解决这个问题的?
【问题讨论】: