首页 > 编程语言 >C#开发的插件程序 - 开源研究系列文章

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

时间:2023-01-07 12:33:53浏览次数:58  
标签:插件 窗口 函数 C# 程序 开源 窗体 定义

       上次编写了一个家庭小助手的小工具软件,也对其中的线程池及管理器进行了介绍(见博文: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#,程序,开源,窗体,定义
From: https://www.cnblogs.com/lzhdim/p/17023591.html

相关文章

  • [ABC278G] Generalized Subtraction Game
    ProblemStatementThisisaninteractivetask(whereyourprograminteractswiththejudge'sprogramviaStandardInputandOutput).Youaregivenintegers$N$......
  • PowerShell木马免杀利器: Invoke-Obfuscation(过火绒)
    Invoke-Obfuscation简介Invoke-Obfuscation工具下载地址:https://github.com/danielbohannon/Invoke-Obfuscation这是一款针对PowerShell文件的免杀工具,此处对CS生成......
  • DockerFile
    一个简单的示例FROMalpine:latestMAINTAINERsongyanCMDecho'hellodocker'创建镜像dockerbuild-thello_docker-ftest.dockerFile.运行这个镜像docke......
  • 使用Flask快速部署PyTorch模型
    对于数据科学项目来说,我们一直都很关注模型的训练和表现,但是在实际工作中如何启动和运行我们的模型是模型上线的最后一步也是最重要的工作。今天我将通过一个简单的案例:部......
  • arxiv上传文件报错: did not end with \n, TRUNCATED? --解决办法
    更新Arxiv内容的时候,提示如下错误:/data/new/4678/4678708/src/update/main.texdidnotendwith\n,TRUNCATED? 解决办法:在报错的提示文件main.tex中,最后一句话,后......
  • [ensp自学]5.dhcp select relay中继
    AR1:创建两个ippoolvlan10和20,g0口ipadd10.0.0.124,静态路由两条:iproute-static192.168.10.02410.0.0.2iproute-static192.168.20.02410.0.0.2s1:创建vlan1020,......
  • [ABC279G] At Most 2 Colors
    ProblemStatementThereisagridwith$1\timesN$squares,numbered$1,2,\dots,N$fromlefttoright.Takahashipreparedpaintsof$C$colorsandpaintedeach......
  • (3)go-micro微服务项目搭建
    目录一微服务项目介绍二go-micro安装1.拉取micro镜像2.生成项目目录三项目搭建使用DDD模式开发项目:四最后一微服务项目介绍账户功能是每一个系统都绕不开的一部分,......
  • Educational Codeforces Round 13
    EducationalCodeforcesRound13https://codeforces.com/contest/6784/6:ABCD(1h)前4题都很简单,E应该是个撞鸭dp但是我想不出来A.JohnyLikesNumbers#include<bits/......
  • Oracle数据恢复故障处理之启动报错:ORA-03113: end-of-file on communication channel
    lsnrctl启动实例startup报错ORA-03113:end-of-fileoncommunicationchannel $su-oracleStep1:Youneedtolookatthealertlog.Itisn'tin/var/logas......