zoukankan      html  css  js  c++  java
  • Prism 学习:从配置文件中加载 Module

        之前我们已经了解过,如何从指定的目录中来加载 Module(原文),现在我们来看,如何从应用程序的配置文件中来加载 Module。以这种方式来加载 Module 的优点包括:1. 被加载的 Module 不需要被引用到主程序中;2. 配置文件可以根据实际情况修改,而不需要重新编译程序。

       大概需要以下几步:

    1. 将 Module 所在的类库文件复制到应用程序所在的地方,可以与主程序同目录,也可以在主程序下的子目录中,或是其它目录;

    2. 在 Bootstrapper 中重载 CreateModuleCatalog 方法;

    3. 修改应用程序的配置文件

    重载 CreateModuleCatalog 方法

       在 Bootstrapper.cs 中添加以下代码:

            protected override Microsoft.Practices.Prism.Modularity.IModuleCatalog CreateModuleCatalog()
            {
                return new ConfigurationModuleCatalog();
            }

    修改配置文件(app.config)

    1. 在 configuration 节点下添加 configSections

      <configSections>
        <section name="modules" type="Microsoft.Practices.Prism.Modularity.ModulesConfigurationSection, Microsoft.Practices.Prism.Composition"/>
      </configSections>

    2. 在 configSections 节点的同步节点(也即 configuration 的子节点),添加 modules 节点,并将要加载的 module 添加到该节点下

      <modules>
        <module assemblyFile="Modules\Hymnal.dll" moduleType="Hymnal.HymnModule, Hymnal, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" moduleName="HymnModule" />
      </modules>

    说明:

    1. configSections 节点必须是 configuration 节点下的第一个子节点,不然会出现如下错误:“System.TypeInitializationException”类型的未经处理的异常在 PresentationFramework.dll 中发生

    2. 在 module 节点中,assemblyFile 属性指出 Module 所在的类库文件的相对路径;moduleType 属性为该 Module 的 Type 的 AssemblyQualifiedName;moduleName 为 Module 的名称;这三项为必须项;

    3. 如果要使 Module 达到按需要加载,则可以再为其添加 startupLoaded="false" 属性。

    参考网址:

    https://msdn.microsoft.com/en-us/library/gg405479(v=pandp.40).aspx

    作者:WPInfo

    本文系作者原创,欢迎转载;如需转载,请注明出处。

    公众号:.NET之窗 (WinDotNET),更多原创、优质技术文章,欢迎扫码关注。

  • 相关阅读:
    如何用conda安装软件|处理conda安装工具的动态库问题
    用 Anaconda 完美解决 Python2 和 python3 共存问题
    转录组数据库介绍
    突变注释工具SnpEff,Annovar,VEP,oncotator比较分析--转载
    BioConda--转载
    生信软件的好帮手-bioconda--转载
    一些WGS健康体检网站和公司
    基于R进行相关性分析--转载
    R语言 sub与gsub函数的区别
    Docker安装
  • 原文地址:https://www.cnblogs.com/wpinfo/p/4580080.html
Copyright © 2011-2022 走看看