Prism 区域管理器未正确注射

Prism 区域管理器未正确注射,prism,Prism,我正在尝试将使用旧Prism 4.0的应用程序传递到最新的Prism 7.1.0.431 我差不多做完了,一切都准备好了。依赖项注入已更新为使用最新的Unity。所以,当我看到注射在某种程度上起作用时,一切似乎都回到了正轨 虽然我仍然有一个模块加载问题:区域管理器无法解决。我想我的初始化代码中缺少了一些东西,但是找不到任何相关的文档。尝试进入所有Prism.Wpf示例,但可以找到相关代码 从我在搜索问题答案时看到的代码来看,在模块中注入区域管理器可能不是一个好的做法,但请记住,目前这是一个巨大的

我正在尝试将使用旧Prism 4.0的应用程序传递到最新的Prism 7.1.0.431

我差不多做完了,一切都准备好了。依赖项注入已更新为使用最新的Unity。所以,当我看到注射在某种程度上起作用时,一切似乎都回到了正轨

虽然我仍然有一个模块加载问题:区域管理器无法解决。我想我的初始化代码中缺少了一些东西,但是找不到任何相关的文档。尝试进入所有Prism.Wpf示例,但可以找到相关代码

从我在搜索问题答案时看到的代码来看,在模块中注入区域管理器可能不是一个好的做法,但请记住,目前这是一个巨大的应用程序,希望尽可能避免更改:

以下是我遇到的异常错误:

异常:Prism.Modularity.ModuleInitializeException:初始化模块“AdvancedExportModule”时发生异常。 -异常消息为:依赖项解析失败,类型='Codex.Modules.AdvancedExport.AdvancedExportModule',名称='(无)'。 解析时发生异常。 异常为:InvalidOperationException-当前类型Prism.Regions.IRegionManager是一个接口,无法构造。是否缺少类型映射

我是否缺少Unity正确映射和注入RegionManager的初始化代码

这是代码示例,我试图简单地介绍其中的大部分内容,希望您能够理解其中的错误。。。 这是我的App.xaml:


您在覆盖中做了太多错误的事情。示例:
RegisterTypes
应该只注册类型

protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
    // this has already been called by the base class: ConfigureViewModelLocator();
    // this has also been called by the base class: var containerExtension = CreateContainerExtension();
    // containerRegistry.RegisterInstance(containerExtension);

    // These methods have been commented out they are use to register all the types of the application.
    //RegisterSettings(containerRegistry);
    //RegisterServices(containerRegistry);
    //RegisterHandlers(containerRegistry);
    //RegisterWrappers(containerRegistry);

    containerRegistry.RegisterInstance(Dispatcher.CurrentDispatcher);
}

您应该查看以了解应该如何调用重写。基本上,他们不应该互相打电话,只做他们自己的工作。

谢谢你告诉我我的错误,只要简单看一下PrismApplication Base的源代码,我就明白我做错了什么(就像以前一样,我在查看样本时,从未发现我做错了什么)