我希望这不是一个愚蠢的问题,但我无法识别使用Caliburn.Micro将依赖项注入视图模型的直接方法。
我有一个主壳(conductor)如下:
public class ShellViewModel : Conductor<IScreen>.Collection.OneActive, IShell
{
public ShellViewModel(IEventAggregator eventAggregator) {
ActivateItem(new DashboardViewModel());
}
}
现在我想将一个服务注入到DashboardViewModel中,但由于ActivateItem方法要求我传递一个实例(而不是例如类型),所以我被迫自己提供服务。并且,由于ShellViewModel没有意识到底层的IoC容器,我必须将服务注入到shell中... 对我来说,这似乎是Caliburn试图强制执行应用程序中所有视图模型和依赖项的完整图形。 我知道我可以使用反转控制容器的静态访问器,但我真的不喜欢这种方法,因为我想为我的应用程序(引导程序)拥有单个组合根,而不必让其他部分知道依赖注入等内容。