加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

系统与插件在C#

发布时间:2020-12-15 06:33:03 所属栏目:百科 来源:网络整理
导读:我必须开发一个监控传感器信息的系统,但将来可能会添加许多传感器. 也就是说,这个想法将是开发一个由应用程序框架组成的系统.传感器(每个都具有其通信和数据呈现特性)将作为插件添加到系统中. 我如何在C#上编写代码?是组件驱动开发的一个例子吗?我应该使用
我必须开发一个监控传感器信息的系统,但将来可能会添加许多传感器.

也就是说,这个想法将是开发一个由应用程序框架组成的系统.传感器(每个都具有其通信和数据呈现特性)将作为插件添加到系统中.

我如何在C#上编写代码?是组件驱动开发的一个例子吗?我应该使用动态库吗?

解决方法

C#有很多ad-hoc插件系统.一个描述在 Plugin Architecture using C#( The Code Project).一般的方法是主机应用程序发布具有接口的程序集.它通过一个文件夹枚举,并找到定义一个实现其接口并加载它们并实例化类的类的程序集.

实际上你想做更多的事情.如果主机应用程序定义了两个接口(IHost和IPlugIn),则最好. IHost界面提供插件可以订阅的服务. IPlugIn构建了一个IHost.

要加载插件,你应该做的不仅仅是一个插件.您应该枚举所有可加载的插件.构建它们.问他们是否可以跑.请他们将API导出到主机中.请他们从主机导入API.插件应该能够询问其他插件的存在.

这样,插件可以通过提供更多的API来扩展应用程序.

插件应包括事件.这样插件可以监控插件加载和卸载的过程.

在世界最后,你应该警告插件,他们将要消失.然后把它们拿出来

这将给你一个可以在一个很小的框架中编写的应用程序,如果你想要的话可??以完全在插件中实现.

作为一个额外的好处,您还应该使其在插件文件夹中解决插件的快捷方式.这可以让您编写应用程序并将其传递给其他人.他们可以在其开发环境中创建一个插件,在应用程序的插件文件夹中创建一个快捷方式,而不必担心在每次编译之后部署.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读