C#实现插件框架--过程

C#实现插件式架构 1.定义插件接口,将其编译为DLLnamespace PluginInterface{    public interface IShow    {        string show();    }}2 .编写插件,引用上面的DLL,实现上面定义的接口,也编译为DLL//插件Anamespace PluginInterface{    public clas 阅读详情

以下例子实现界面和数据操作的分离,界面成为一个dll,数据操作部分成为一个dll。

先上一个框图:

 

 

从上面的框图可以看出整体上需要:三个接口

下面是代码:

(1)建立第一个项目(以便形成dll),名称为:PluginKernel,此项目里面只需定义三个接口,为了层次分明,这三个接口分在两个.cs文件中。

先在IControl.cs(或IApp)文件中定义两个接口:

namespace CSPluginKernel

 {

      public interface IApplicationObject   //应用程序主界面接口

      {
          void SetDelegate( EventHandler target );   //传递一个委托,即函数指针作为形参,这个委托会保存在主界面对象的appEvent成员中

          IDocumentObject GetActivatedDocuments(); // 获取当前使用的文档对象
      }

      public interface IDocumentObject   //文档对象(文本框)接口

      {

          string SetText { get; set; }
          Color SelectionColor { get; set; }
          Font SelectionFont { get; set; }

      }

}

然后IPlugin.cs文件中定义一个插件接口:

namespace CSPluginKernel {

     public interface IPlugin

     {
          ConnectionResult Connect( IApplicationObject app );    //插件注册函数
          void OnDestory();
          void OnLoad();   //插件加载
          void Run();        //运行插件
     }

}

 

(2)建立第二个项目,名称为:MyPlugin1,此项目就包含一个具体插件类。

建立MyPlugin1.cs文件,在此文件中添加如下代码:

namespace MyPlugin1
{
    public class MyPlugin1 : IPlugin
   

在C#程序中实现插件架构 在C#程序中实现插件架构 - Sunmast翻译原文链接:http://www.cuj.com/documents/s=8209/cujweb0301walcheske/原文作者:Shawn Patrick Walcheske译者:电子科技大学 夏桅[引言]在.NET框架下的C#语言,和其他.NET语言一样提供了很多强大的特性和机制.其中一些是全新的,而有些则是从以前的语言和平 阅读详情

相关推荐

带有自定义控件的C#插件开发

打开Visual Studio,选择"新建项目",在模板列表中选择"类库(.NET Standard)“并命名项目为"PluginWithControl”。在"MainApp"项目中,我们需要引用之前创建的插件项目。右键点击"依赖项",选择"添加引用",在"项目"选项卡中选择"解决方案",勾选"PluginWithControl"项目并点击"确定"。经过以上步骤,我们成功地开发了一个带有自定义控件的C#插件,并且在主应用程序中使用了该插件。在项目中添加一个新的类文件,命名为"MyControl.cs"。

WELL_CODER的博客 313

C#系列-C#大数据MEF分页用法(22)

请注意,这个例子非常简化,实际应用中可能需要考虑更多的细节,比如错误处理、性能优化和数据库查询的延迟执行等。与分页没有直接的联系,因为分页通常与数据库查询和结果集处理相关,而不是与应用程序的扩展性有关。如果你正在处理大数据集,你可能需要考虑更高效的分页策略,比如直接在数据库层面使用。的插件系统中实现分页功能,你可以将分页逻辑封装在一个插件或服务中,然后通过。的导入和导出功能,你需要在应用程序的启动代码中配置。接下来,在需要使用分页功能的地方,你可以导入。接口,并且可以被其他部分的应用程序所导入。

赵玉的专栏 723

C#插件式框架开发完整Demo

C#插件式框架开发完整DemoC#插件式框架开发完整DemoC#插件式框架开发完整DemoC#插件式框架开发完整DemoC#插件式框架开发完整DemoC#插件式框架开发完整Demo

手把手教你用微信小程序实现智能硬件音视频通话(含Linux/RTOS适配)

本文详细介绍了如何利用微信小程序硬件框架(WMPF)和音视频SDK,在智能硬件(包括Linux与RTOS设备)上实现音视频通话功能。文章从架构设计、设备端SDK集成、小程序VOIP插件开发到跨平台调试与性能优化,提供了全链路实战指南,帮助开发者打通微信小程序与嵌入式设备间的实时音视频通信。

ooo22的博客 329

SuperPoint + LightGlue实战:低纹理墙面重建保姆级教程(附完整代码)

本文提供了一份针对低纹理墙面三维重建的实战教程。通过详细解析SuperPoint与LightGlue的核心参数调优,指导读者如何有效提取并匹配低纹理目标的特征点,并结合COLMAP完成从稀疏到稠密的重建流程,最终实现高精度建模。

weixin_29034963的博客 223

pgAdmin4备份恢复实战:从安装到避坑指南

本文提供了一份详尽的pgAdmin4备份恢复实战指南,涵盖从安装配置到执行备份恢复的全流程。针对Windows环境下的浏览器兼容性、二进制路径配置等常见问题,给出了具体解决方案。重点强调了使用pgAdmin4进行备份恢复的可靠性,特别是在处理包含PostGIS等扩展的数据库时,能有效避免数据类型和权限错误,确保数据迁移的完整性与安全性。

weixin_29266007的博客 439

浅谈MOS管的发热原因和解决办法

解读一下开关管发热原因,解决方案和开关损耗测试。

qq_45508321的博客 1万+

第十篇|网络子系统 ②——无损以太网、PFC/ECN、DCQCN 与拥塞可视化

网络部分了解了解

qq_37535542的博客 1874

Megatron-LM从头训练大语言模型:并行策略图示【Tensor并行、Pipeline并行、Data并行、Sequence并行、virtual_pipeline并行、Context并行】

节点包含的层每GPU的参数内存每GPU的激活内存节点0Stage 0层1-1212层参数/2 (TP切分)8k序列激活 (CP切分)节点1Stage 1层13-2412层参数/2 (TP切分)8k序列激活 (CP切分)节点2Stage 2层25-3612层参数/2 (TP切分)8k序列激活 (CP切分)节点3Stage 3层37-4812层参数/2 (TP切分)8k序列激活 (CP切分)负载均衡:每个节点处理相同数量的层(12层)内存优化。

u013250861的博客 285

CDD数据库文件制作(十一)——服务配置(0x19_DTC Code)

虽然选择Copy和Reference都可以加载DTC,但是如果我们在DTC库中有修改DTC,通过Copy的方式加载的DTC在DTC Table中不会跟着DTC库的修改而自动更新。通过Reference的方式加载的DTC可以自动更新。找到Fault Memory的DTC Table,鼠标放在DTC Table区域,右键点击选择Copy …根据需要(客户协议)勾选响应的19服务子功能。如何创建一个新的DTC code?按照字母与下方要素可做一一对应。首先在DTC库中新建DTC。支持10 01/10 03。

LOVE135149的博客 1917

OpenClaw 源代码深度分析报告 &如何把企业自有的MCP server 工具集成到OpenClaw里? 怎样通过OpenAI 风格SDK 解析出来OpenClaw的全部的流式输出内容?

项目属性详情名称OpenClaw版本2026.3.2许可证MIT语言最低运行时包管理器pnpm主要仓库},// 注册工具// 工具实现},});// 注册命令" }),});},方面评价模块化设计⭐⭐⭐⭐⭐ 插件架构清晰,扩展性强协议设计⭐⭐⭐⭐⭐ WebSocket 协议完善,支持多种客户端多渠道支持⭐⭐⭐⭐⭐ 20+ 消息通道,覆盖主流平台安全机制⭐⭐⭐⭐ 配对认证、设备签名、权限控制完善本地优先⭐⭐⭐⭐⭐ 数据本地存储,用户完全控制项目属性详情名称OpenClaw版本。

AI天才研究院 936

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 数据库范式--另类理解
下一篇: c# Using语句三用途
HNFXS985
博客等级 码龄14年 219粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值