【发布时间】:2019-07-09 21:25:01
【问题描述】:
我正在重写一个使用 MVVMLight 的项目,该项目使用 Microsoft 的 ServiceLocation 作为容器到 Prism 应用程序中。
这是我试图在我的视图模型中重写的以下代码。
var class = ServiceLocator.Current.GetInstance<IClass>();
我知道这就是使用 Prism 解析界面的方式。
var class = (iClass)containerRegistry.GetContainer().Resolve< iClass >();
我的问题是,如果您无权访问容器,如何使用接口解析视图模型中的接口?
【问题讨论】:
-
您不想在视图模型中使用容器。抓住机会,消除服务定位器的设计缺陷,而不是复制它。