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