c# - 为什么 IDependecyResolver.Resolve<IUICompositionService>() 方法会抛出异常 'Catel.IoC.TypeNotRegisteredException' ?

标签 c# wpf mvvm catel

当我尝试解析 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/

相关文章:

c# - 使用 jQuery 回发到 Controller

c# - 来自幕后的绑定(bind)错误

wpf mvvm 绑定(bind) View 到模型

wpf - 寻找简单的 MVVM Light 示例

c# - 如何使用 MVVM 在组合框中设置默认文本

c# - Azure Key Vault 证书证书标识符、 secret 标识符、 key 标识符之间的区别

c# - Visual Studio 2013 中的自定义 "One ASP.NET"项目模板

c# - 从表中获取值作为引用

c# - 是否可以将 WPF 窗口打包为 COM 对象

wpf - 在数据网格中单击单元格时查找数据网格列名称