• 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),更多原创、优质技术文章,欢迎扫码关注。

  • 相关阅读:
    CSS Tab简洁版,切换标签
    浮动在网页右侧的简洁QQ在线客服
    Marquee 最简单图片滚动特效
    浮动的图片广告
    Button控件设置不能点击
    Android requires compiler compliance level 5.0 or 6.0. Found '1.4' instead的解决办法
    BroadcastReceiver组件
    发邮件 Async="true"
    ASP.NET GridView,DataList,Repeater日期格式显示
    Json原理和语法
  • 原文地址:https://www.cnblogs.com/wpinfo/p/4580080.html
Copyright © 2020-2023  润新知