我有一个 ViewModel 类,我想通过统一 ServiceLocator 解决它,但我的 viewModel 需要构造函数的参数。参数的类型是我的应用程序中的实体之一(客户对象),而不是某些服务实现。我知道针对 Unitycontainer 本身的编码我可以传递这样的参数:
_container.Resolve<CustomerDetailViewModel>(new ParameterOverrides {{"customer", customer}});
但如果我没有直接访问容器的权限,我需要像这样通过 ServiceLocator:
(CustomerDetailViewModel)ServiceLocator.Current.GetInstance<CustomerDetailViewModel>();
但是,使用第二种方法我无法将任何参数传递给 ServiceLocator。有什么办法可以做到这一点?从 ServiceLocator 获取 Container 的实例然后使用它是“错误的”吗?