【发布时间】:2019-09-20 02:02:07
【问题描述】:
我将 Prism 7.1 用于 WPF 应用程序。 我尝试使用内置的 IOC(Unity),但我不知道如何在运行时从方法或 containerProvider 解析新实例。但似乎 IContainerProvider 无法注入到我的视图模型中。我有什么选择吗?
我想这样做以重新加载我的数据库上下文。有人告诉我,创建新的上下文是最简单的。
public class ProjectViewModel : BindableBase
{
private UnitOfWork unitOfWork;
private IContainerProvider containerProvider;
private IEventAggregator eventAggregator;
#region Constructor
public ProjectViewModel(UnitOfWork unitOfWork, IContainerProvider cp, IEventAggregator ea)
{
this.unitOfWork = unitOfWork;
containerProvider = cp;
eventAggregator = ea;
eventAggregator.GetEvent<SendReloadDataEvents>().Subscribe(Reload);
Reload();
}
#endregion
private void Reload()
{
this.unitOfWork = containerProvider.Resolve<UnitOfWork>();
Projects = new ObservableCollection<Projects>(unitOfWork.ProjectRepo.GetAll());
Customers = new ObservableCollection<Customers>(unitOfWork.CustomerRepo.Find(x => x.Projects.Count > 0));
SelectedProjectType = null;
}
//Other logic continues
}
【问题讨论】:
标签: wpf unity-container prism