当我尝试解析 IUICompositionService 接口(interface)时出现异常“Catel.IoC.TypeNotRegisteredException”。我添加了引用 Catel.Extensions.Prism 并将 Nuget 中的 LoadAssembliesOnStartup.Fody 安装到我的 WPF MVVM Catel 项目中,并在 App.OnStartup() 方法的 App.xaml.cs 中编写了以下代码:
var serviceLocator = new ServiceLocator();
serviceLocator.RegisterTypesUsingDefaultNamingConvention();
在命令方法中的 MainWindowViewModel 中,我编写了以下代码,用于在应用程序 MainWindow 中可视化 CalibrationView View :
private void ShowCalibrationViewExecute()
{
var viewModel = new CalibrationViewModel();
var dependencyResolver = this.GetDependencyResolver();
var uiCompositionService = dependencyResolver.Resolve<IUICompositionService>();
uiCompositionService.Activate(viewModel, "MainRegion");
}
对于此 View ,应用程序中有 CalibrationModel 和 CalibrationViewModel 类。但是当我按下 MainWindow 工具栏中的 ShowCalibrationView 按钮并调用 ShowCalibrationViewExecute 方法时
var uiCompositionService = dependencyResolver.Resolve<IUICompositionService>();
抛出异常 Catel.IoC.TypeNotRegisteredException。异常报告:指定类型'Catel.Services.IUICompositionService'未注册或无法构造。请在使用前注册类型。 “Catel.Services.IUICompositionService”类型未注册。我怎样才能纠正和消除这个错误?我做错了什么?
附言现在我的项目中有以下 Catel 的引用:Catel.Core、Catel.Extensions.Controls、Catel.Extensions.Prism、Catel.Fody.Attributes、Catel.MVVM。
最佳答案
确保实现一个负责类型注册的 Bootstrap 。查看 Examples repository 中的示例,它包含几个棱镜示例。
关于c# - 为什么 IDependecyResolver.Resolve<IUICompositionService>() 方法会抛出异常 'Catel.IoC.TypeNotRegisteredException' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35032215/