上次编写了一个家庭小助手的小工具软件,也对其中的线程池及管理器进行了介绍(见博文:C#开发的线程池和管理器 - 开源研究系列文章),这次把里面的插件部分的功能单独放出来进行介绍,让更多的朋友能够进行学习借鉴及代码复用上。

  一、      项目目录;

  下面对项目目录进行介绍,其中PlugIns是主程序,Lzhdim的类库为需要的操作库,Plugins.Example为插件程序DLL文件:

  二、      插件接口定义;

  此程序定义了关于窗口和插件程序两个接口,主要是通过C#的反射进行的调用。其中关于窗口能够通过双击介绍打开说明窗口。

  1、        关于窗口接口定义;

  关于窗口的接口定义比较简单,直接提供关于窗口的基本信息获取。

  

  2、        插件程序接口定义;

  对于插件程序的接口,此程序主要定义了几个接口函数,其中第一个为获取接口信息的函数;第二个为打开主窗口的函数定义;第三个为打开插件配置窗口的函数定义;第四个为打开插件程序关于窗口的函数;第五个为初始化插件程序的函数定义;

  

  三、      插件开发介绍;

  上面定义了插件程序的接口,下面对该插件接口进行插件的开发。

  1、        实现该插件接口;

  首先实现该插件接口,为插件程序的使用进行定义。

  2、        开发插件程序;

  1)        插件程序目录;

  下面是插件程序的目录,主要是实现该插件程序的几个窗口及插件程序的功能。

  

  2)        插件程序开发;

  插件程序,主要是实现插件程序的关于窗体、配置窗体、初始化窗体以及主窗体。其中自行定义需要的类库等函数。这里有初始化函数和退出函数。

  

  这里对主窗体的实现进行介绍,主要有几个窗体的初始化函数。

  

  四、      主程序介绍;

  主程序这边,主要由插件菜单和初始化函数组成。

  1、        菜单函数;

  这里定义了菜单添加插件程序的函数定义。

  2、        插件菜单;

  这里提供插件菜单显示的初始化函数定义。

  五、      项目运行;

  下面对项目运行情况进行下介绍。

  1、        主窗体运行;

  下面是主窗体运行的截图。这里的插件显示为上面添加的函数,点击该菜单能够打开插件程序。

  

  2、        插件管理窗口运行;

  打开插件管理器,这里能够对插件程序进行配置管理等操作。

  

  3、          关于窗口运行;

  下面为关于窗体的显示,上面为程序运行需要的DLL文件;下面为插件程序的DLL文件。

  

  上面对C#开发的插件程序进行了介绍,其中的插件接口定义比较简单,只是实现基本的插件程序需要的功能。后面将对插件接口的定义有另一个介绍。

  下面提供源码下载:

  https://download.csdn.net/download/lzhdim/87361153

C#开发的插件程序 - 开源研究系列文章的更多相关文章

  1. C#面向插件级别的软件开发 - 开源研究系列文章

    在现在的面向对象的分析与设计软件开发过程中,最开始就是面向对象的软件开发.但是,在实际的软件开发过程中,很多都是面向接口的开发方式,这种是一种面向对象开发的模式.但是,今天笔者给大家带来的是面向插件的 ...

  2. MP3文件ID3信息编辑器代码开源 - 开源研究系列文章

    上次把磁性窗体的源码开源了,这次就开源另一个程序源码:MP3文件ID3信息编辑器.这个源码也比较简单,关键在于获取和写入MP3文件的这个ID3的信息即可. 这个操作信息编辑的就封装在MP3ID3.ba ...

  3. 使用XML序列化实现系统配置 - 开源研究系列文章

    在实际的C#软件系统开发过程中,会遇到系统配置的保存问题,以及系统存储问题.在以前的系统开发过程中,笔者使用的是INI文件配置管理的方式.到了现在,INI文件配置保存仍然是一个平常使用的方式.在博客园 ...

  4. 微信小程序 | 49,小程序入门集锦系列文章20篇

    以下20篇文章,都是关于微信小程序的文章,以入门常见问题为主.如发现谬误,请与笔者联系. [小程序入门集锦]1,微信小程序在哪里打开 [小程序入门集锦]2,小程序商店 [小程序入门集锦]3,微信小程序 ...

  5. Excel催化剂开源第32波-VSTO开发的插件让WPS顺利调用的方法-注册表增加注册信息

    VSTO插件开发完成后,鉴于现在WPS用户也不少,很多时候用户没办法用OFFICE软件,只能在WPS环境下办公,VSTO开发的插件,只需增加一句注册表信息,即可让WPS识别到并调用VSTO开发的功能, ...

  6. 【微信小程序开发•系列文章六】生命周期和路由

    这篇文章理论的知识比较多一些,都是个人观点,描述有失妥当的地方希望读者指出. [微信小程序开发•系列文章一]入门 [微信小程序开发•系列文章二]视图层 [微信小程序开发•系列文章三]数据层 [微信小程 ...

  7. 【转】.Net中通过反射技术的应用----插件程序的开发入门

    转自:http://www.cnblogs.com/winloa/archive/2012/03/25/2416355.html .Net中通过反射技术的应用----插件程序的开发入门 再开始之前,先 ...

  8. 用Vue.js开发微信小程序:开源框架mpvue解析

    前言 mpvue 是一款使用 Vue.js 开发微信小程序的前端框架.使用此框架,开发者将得到完整的 Vue.js 开发体验,同时为 H5 和小程序提供了代码复用的能力.如果想将 H5 项目改造为小程 ...

  9. 使用 PySide2 开发 Maya 插件系列 总览

    使用 PySide2 开发 Maya 插件系列 总览 使用 PySide2 开发 Maya 插件系列一:QT Designer 设计GUI, pyside-uic 把 .ui 文件转为 .py 文件 ...

  10. 使用 PySide2 开发 Maya 插件系列三:qt语言国际化(internationalization)

    使用 PySide2 开发 Maya 插件系列三:qt语言国际化(internationalization) 前言: 这是 qt for python 的语言国际化,基于 UI 的,python 也有 ...

随机推荐

  1. 一天十道Java面试题----第三天(对线程安全的理解------>线程池中阻塞队列的作用)

    这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 21.对线程安全的理解 22.Thread和Runnable的区别 23.说说你对守护线程的理解 24.ThreadLoc ...

  2. java 入土--集合详解

    java 集合 集合是对象的容器,实现了对对象的常用的操作,类似数组功能. 和数组的区别: 数组长度固定,集合长度不固定 数组可以存储基本类型和引用类型,集合只能存储引用类型 使用时需要导入类 Col ...

  3. Android掌控WiFi不完全指南

    前言 如果想要对针对WiFi的攻击进行监测,就需要定期获取WiFi的运行状态,例如WiFi的SSID,WiFi强度,是否开放,加密方式等信息,在Android中通过WiFiManager来实现 WiF ...

  4. 8.pygame-定时器

    使用定时器添加敌机 游戏启动后,每隔一秒出现一架敌方飞机 每架飞机向屏幕下方飞行,速度各不相同 没加敌机出现的水平位置也不进相同 当敌机从屏幕下方飞出,不会再飞回到屏幕中   定时器 pygame中使 ...

  5. SpringCloud微服务实战——搭建企业级开发框架(四十八):【移动开发】整合uni-app搭建移动端快速开发框架-使用第三方UI框架

      uni-app默认使用uni-ui全端兼容的.高性能UI框架,在我们开发过程中可以满足大部分的需求了,并且如果是为了兼容性,还是强烈建议使用uni-ui作为UI框架使用.   如果作为初创公司,自 ...

  6. Sublime Text怎样自定义配色和主题

    一.自定义配色方案 1 基础知识 配色方案[Color Scheme]文件保存在以下路径[ST安装目录]: "D:\Program Files\Sublime Text\Packages\C ...

  7. 基于docker安装jumpserver

    以下配置均在一台ubuntu上实现 # 生成宿主机Mysql配置文件,便于docker内容器使用 [root@ubuntu2004 ~]#mkdir -p /etc/mysql/mysql.conf. ...

  8. Rock18框架之整体框架介绍

    1. 总体框架图 2.框架能解决哪些问题? 问题1: 自动化设备包含龙门架.机械手.伺服.步进等电机.IO控制.定位及纠偏.界面展示等部分.其中硬件(伺服.IO等)是需要更换的,硬件的更换不影响整套系 ...

  9. 还在用双层for循环吗?太慢了

    前情提要 我们在开发中经常碰到这样的场景,查出两个 list 集合数据,需要根据他们相同的某个属性为连接点,进行聚合.但是平时我们使用的时候关注过性能吗?下面让我们一起来看看它的表现如何. 来个例子 ...

  10. Python基础之模块:1、模块的导入和使用

    目录 一.模块 1.简介 2.模块的表现形式 二.模块的分类 1.自定义模块 2.内置模块 3.第三方模块 三.导入模块的句式 学前须知: 1.import句式 2.from...import...句 ...