![](/img/trans.png)
[英]Catel.IoC.TypeNotRegisteredException: Catel throws exception even though CanResolve returns true
[英]Why does IDependecyResolver.Resolve<IUICompositionService>() method throw exception 'Catel.IoC.TypeNotRegisteredException'?
当我尝试解析IUICompositionService接口时,出现异常'Catel.IoC.TypeNotRegisteredException'。 我添加了参考Catel.Extensions.Prism,并从Nuget安装了LoadAssembliesOnStartup.Fody到我的WPF MVVM Catel项目中,并在App.xaml.cs中的App.OnStartup()方法中编写了以下代码:
var serviceLocator = new ServiceLocator();
serviceLocator.RegisterTypesUsingDefaultNamingConvention();
在MainWindowViewModel中的命令方法中,我编写了以下代码以可视化应用程序MainWindow中的CalibrationView视图:
private void ShowCalibrationViewExecute()
{
var viewModel = new CalibrationViewModel();
var dependencyResolver = this.GetDependencyResolver();
var uiCompositionService = dependencyResolver.Resolve<IUICompositionService>();
uiCompositionService.Activate(viewModel, "MainRegion");
}
对于此视图,应用程序中有CalibrationModel和CalibrationViewModel类。 但是,当我按MainWindow工具栏中的ShowCalibrationView按钮并调用ShowCalibrationViewExecute方法时,
var uiCompositionService = dependencyResolver.Resolve<IUICompositionService>();
引发Catel.IoC.TypeNotRegisteredException异常。 异常报告: 指定的类型'Catel.Services.IUICompositionService'未注册或无法构造。 使用前请先注册类型。 未注册类型“ Catel.Services.IUICompositionService” 。 如何纠正和消除此错误? 我做错了什么?
PS现在,我的项目中有以下Catel的参考文献:Catel.Core,Catel.Extensions.Controls,Catel.Extensions.Prism,Catel.Fody.Attributes,Catel.MVVM。
确保实现一个负责类型注册的引导程序。 在“ 示例”存储库中查看示例,其中包含几个棱镜示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.