【问题标题】:Unable to retrieve the module type Error无法检索模块类型错误
【发布时间】:2010-11-02 13:28:28
【问题描述】:

我以棱镜为例;这是我第一次玩 WPF。我写了两个模块; orderModule 和 orderDetailModule。我能够运行我的应用程序并将它们填充在一个屏幕上,现在我尝试只加载一个模块并通过单击按钮加载另一个模块。我之前在代码中加载我的模块,然后我注意到 prism 正在使用 xml,所以我也在尝试这样做。由于某种原因它找不到它们,我得到的完整错误是:

Microsoft.Practices.Composite.Modularity.ModuleInitializeException 未处理 Message="无法从加载的程序集中检索模块类型 NetworkOrderManagement.WPF_Modules.Order, OrderModule。您可能需要指定更完全限定的类型名称。"

这是我的 app.config 中的模块部分:

<modules>
<module assemblyFile="WPFOrderModule.dll" 
        moduleType="NetworkOrderManagement.WPF_Modules.Order, OrderModule" 
        moduleName="OrderModule"/>
<module assemblyFile="WPFOrderDetailModule.dll" 
        moduleType="NetworkOrderManagement.WPF_Modules.OrderDetail, OrderDetailModule" 
        moduleName="OrderDetailModule" 
        startupLoaded="false"/>

来自link text

在模块配置部分中,定义您的模块。为此,请添加一个模块 XML 元素。该元素具有以下属性:

汇编文件。此属性指定模块程序集的位置。该属性是必需的。

模块类型。此属性指定实现 IModule 接口的模块程序集中的类型。该属性是必需的。

模块名称。此属性指定模块的名称。该属性是必需的。

启动加载。此属性指定模块是否在启动时加载。如果其值为 true(这是默认值),则应在启动时加载模块。如果其值为 false,则模块不应在启动时加载;相反,它应该按需加载。该属性不是必需的。

实现 IModule 的我的 OrderModule 位于命名空间 NetworkOrderManagement.WPF_Modules.Order。

有什么想法吗?

【问题讨论】:

    标签: wpf module app-config


    【解决方案1】:

    这可能是使用反射根据其类型加载模块。您必须使用完全限定的类型名称才能使反射起作用。这通常采用以下格式:“Full.Namespace.TypeName, AssemblyName”。这将是最基本的命名。如果这不能解决,那么您必须开始添加其他属性,包括版本、语言等。

    【讨论】:

    • 它现在可以工作了,我有“命名空间,TypeName”,没有组装。
    猜你喜欢
    • 2020-11-03
    • 1970-01-01
    • 2017-02-20
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多