zoukankan      html  css  js  c++  java
  • nopcommerce插件使用

         nopcommerce是国外用.net开发的电商b2c开源项目,主要涉及技术包括了ef+mvc。

          今天主要分析nop的插件机制。

          什么是插件?插件是预先开发好的可以独立运行的功能模块,把单独的功能模块动态嵌入主项目这种模式我自称它为插件模式。

         这种插件模式作用在于利于模块化编码,降低功能模块间耦合程度,增加模块功能的可扩展性。

         废话扯完,现在主要说下插件的运行机制。简单总结的说,程序启动,动态加载各种插件的程序集,动态执行相应实现接口的代码逻辑。

         插件主要涉及的类如下:

          PluginManager----插件管理类负责 加载所有插件  记录通过文本形式安装 卸载插件记录

          PluginFinder  -----插件信息搜集类 负责获取插件的具体描述信息

          PluginFileParser--插件工具类 负责输出插件信息 

          BasePlugin  IPlugin   插件的接口与实现  主要包括安装和卸载以及插件描述信息的属性

          程序加载前 ,先加载所有的插件,将所有插件放在一个静态变量之中,其中描述信息是从文本描述文件取的并转化成实体添加到插件集合中,后面的插件描述信息的查询都从中取之。

          下面这句话,意思在global之前执行PluginManager.Initialize  加载所有插件,--这里有个添加信任文件的逻辑,现在没理解,日后补充。

    [assembly: PreApplicationStartMethod(typeof(PluginManager), "Initialize")]
    

        安装插件的逻辑:

             先插入插件定义描述信息到资源表中,输出插件名字到文本中

           卸载插件的逻辑 与之相反

             

  • 相关阅读:
    使用360安全卫士在线对本机电脑进行重装系统
    分享个人电脑上的文件
    Docker初探之运行RabbitMQ消息队列服务
    Docker初探之运行MySQL
    Docker初探之常用命令实践
    Docker初探之Windows篇
    SignalR入门之多平台SignalR服务端
    SignalR入门之从外部访问持久性连接或Hub
    SignalR入门之Hub
    SignalR入门之小试身手
  • 原文地址:https://www.cnblogs.com/JaggerMan/p/5041992.html
Copyright © 2011-2022 走看看