【发布时间】:2015-07-16 16:29:52
【问题描述】:
我真的希望这不是一个愚蠢的问题,但我不知何故无法识别使用 Caliburn.Micro 将依赖项注入视图模型的直接方法。
我有一个像这样的主外壳(导体):
public class ShellViewModel : Conductor<IScreen>.Collection.OneActive, IShell
{
public ShellViewModel(IEventAggregator eventAggregator) {
ActivateItem(new DashboardViewModel());
}
}
现在我想将服务注入DashboardViewModel,但由于ActivateItem 方法要求我传递一个实例(而不是例如一个类型),我不得不自己提供服务。而且由于ShellViewModel 不知道底层的 IoC 容器,我必须将服务注入到 shell 中.. 对我来说,看起来 Caliburn 正在尝试强制执行所有视图模型和依赖关系的完整图表申请。
我知道我可以为我的控制容器反转使用静态访问器,但我真的不喜欢这种方法,因为我希望在没有其他部分了解依赖注入等。
【问题讨论】:
-
您是否找到了一种方法来使用 ActivateItem 使用接口来利用依赖注入?目前唯一的方法是传递一个viewmodel实例并通过IoC获取服务?
标签: c# wpf mvvm dependency-injection caliburn.micro