上次编写了一个家庭小助手的小工具软件,也对其中的线程池及管理器进行了介绍(见博文: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. Python模拟客户端

    本机客户端 import socket # 获取到socket sk = socket.socket() # 获取到地址 ip 和 端口号 server端的 address = ('127.0.0.1 ...

  2. Failed to convert from type [java.lang.String] to type [java.util.Date] for value '2020-02-06'; nested exception is java.lang.IllegalArgumentException]解决

    今天做springbook项目前端输入日期传到数据库保存报了一下错误 Whitelabel Error Page This application has no explicit mapping fo ...

  3. 2、第二种传输数据的形式:使用ajax传输数据,将前台的数据传输到后端

    第一种使用form表单中的action形式传输数据:https://blog.csdn.net/weixin_43304253/article/details/120335282 前端页面 <% ...

  4. 21.drf视图系统组成及继承关系

    APIView REST framework提供了一个 APIView 类,它是Django的 View 类的子类. APIView 类和Django原生的类视图的 View 类有以下不同: 传入的请 ...

  5. windows下cmd补全键注册表修改

      1:使用win+r打开 运行 控制台 2:输入 regedit 打开注册表 3:进入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\ ...

  6. Java反序列化中jndi注入的高版本jdk绕过

    群里大佬们打哈哈的内容,菜鸡拿出来整理学习一下,炒点冷饭. 主要包含以下三个部分: jndi注入原理 jndi注入与反序列化 jndi注入与jdk版本 jndi注入原理: JNDI(Java Name ...

  7. DelCrLfSpace V0.9

    开发界面 Option Explicit 'SourceTextBox 是上面的源框 'ResultTextBox 是下面的处理预览框 'Form KeyPreview = True Private ...

  8. c++ 模板 指针类型偏特化

    一步步来,先简单点. 目标:我们要实现一个模板类,例化后,可以通过get_val获取到值,通过get_ptr获取到指针.具体什么意思结合例子来看看吧. 例子: struct A{ int data; ...

  9. pod(九):污点taint 与容忍度tolerations

    目录 一.系统环境 二.前言 三.污点taint 3.1 污点taint概览 3.2 给节点添加污点taint 四.容忍度tolerations 4.1 容忍度tolerations概览 4.2 设置 ...

  10. pycharm系列---基本配置

    自动加入头文件 # _*_ coding: utf-8 _*_ # @Time : ${DATE} ${TIME} # @Author : xiechunhui # @Version:V 0.1 # ...